Решил попробовать сократить задачу, чтобы не читать весь файл, а при нахождении нужной строки заканчивать чтение. Но валидатор со мной явно не дружит)
package com.javarush.task.task18.task1822;
/*
Поиск данных внутри файла
id productName price quantity
где id - int.
productName - название товара, может содержать пробелы, String.
price - цена, double.
quantity - количество, int.
*/
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 {
FileInputStream fileInputStream = new FileInputStream(new BufferedReader(new InputStreamReader(System.in)).readLine());
String str = "";
while (fileInputStream.available() > 0) {
for (int i = fileInputStream.read(); i != 10 && fileInputStream.available() > 0; i = fileInputStream.read())
str += (char) i;
if (str.startsWith((args[0] + " "))) break;
str = "";
}
System.out.println(str.trim());
fileInputStream.close();
}
}