Потратил уже кучу времени, но так и осталось загадкой, почему задача не проходит валидацию. Решение правильное, кириллицу выводит, введеные нечисловые значения не обрабатывает. Что нужно ещё - не понимаю.
package com.javarush.task.task18.task1822;
/*
Поиск данных внутри файла
*/
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in, "KOI8_R"));
FileInputStream fis = new FileInputStream(br.readLine());
byte[] data = new byte[fis.available()];
fis.read(data);
fis.close();
int i = 0;
String s, id, out = "";
// id = "1985";
try{
id = String.valueOf(Integer.parseInt(args[0])); // Проверяем, что пришел args[0] типа int
s = new String(data, "CP1251");
while (i < s.length()) {
do {
out += (char) s.charAt(i);
} while(s.charAt(i++) != '\n');
if(out.contains(id)){ // args[0]
System.out.println(out);
break;
}
out = "";
}
}
catch (NumberFormatException e) {
}
}
}