Вывод проверял, вроде такой как надо, что валидатору не нравится?
package com.javarush.task.task18.task1822;
/*
Поиск данных внутри файла
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String firstFile = reader.readLine();
//засовываем данные из файла в массив байт
FileInputStream fis1 = new FileInputStream(firstFile);
byte[] arr1 = new byte[fis1.available()];
fis1.read(arr1, 0, fis1.available());
String s = new String(arr1); //засовываем массив байт в стрингу для дальнейших манипуляций со строкой
String[] split = s.split("\\r\\n"); //теперь каждая строка = новый элемент массива
for (String s1 : split) {
String[] entry = s1.split("\\s"); //разбили строку по пробелам, первый элемент массива - это id
if (entry[0].trim().equals(args[0])) {
System.out.println(s1);
}
}
reader.close();
fis1.close();
}
}