Подскажите пожалуйста, где недочет?
package com.javarush.task.task18.task1822;
/*
Поиск данных внутри файла
*/
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) {
args = new String[1];
args[0] = String.valueOf(12);
BufferedReader fileNameReader = new BufferedReader(new InputStreamReader(System.in));// считал имя
try { // считал с файла одну строчку
BufferedReader oneStringFromFileReader = new BufferedReader(new InputStreamReader(new FileInputStream(fileNameReader.readLine())));
fileNameReader.close();
while (oneStringFromFileReader.ready()) {
String tovar = oneStringFromFileReader.readLine();
if (tovar.startsWith(args[0] + " ")) System.out.println(tovar);
}
oneStringFromFileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/* // Данные выводит (уже нет переноса строки), но валидатор не принял
try {
FileInputStream bytesFromFile = new FileInputStream(/*"D:\\mytasks\\newData2.txt"*//*new BufferedReader(new InputStreamReader(System.in)).readLine());
byte[] buffer = new byte[bytesFromFile.available()];// задается размер БАЙТОВОГО буфера
bytesFromFile.read(buffer);// вне цикла чтение в БАЙТОВЫЙ буфер, результат игнорируется.
bytesFromFile.close();
String textFromString = new String(buffer); //буфер содержащий байты заносится в строку.
String [] byteNewBuffer = textFromString.split( "\n");// разбивая на пробелы мы тем самым создаем проблему,
//когда есть ID отличаюшиеся только пробелами, то split(" ") уберет их и создаст тем самым полностью одиннаковые ID.
ArrayList<String> list = new ArrayList<>(Arrays.asList(byteNewBuffer));// с массива все СТРОКИ заносится в список при его создании
/* for (int i = 0; i < byteNewBuffer.length; i++) {
System.out.println(byteNewBuffer[i]); // при print выводит только последнюю строчку
}
System.out.print("\n");
*/
/* for (int i = 0; i < list.size(); i++) {
if (list.get(i).startsWith(args[0]+ " "))//(list.get(i).substring(0, list.get(i).indexOf(" ")).equals(args[0])) {
System.out.print(list.get(i));// выводится вся строка.
}
// }
} catch (IOException e) {
e.printStackTrace();
}
*/
/* // Данные выводит (лишняя строчка - как перенос строки \\n), но валидатор не принял
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
FileInputStream inStream = new FileInputStream("D:\\mytasks\\newData2.txt");
byte[] buffer = new byte[inStream.available()];
inStream.read(buffer);
String text = new String(buffer);
Pattern pattern = Pattern.compile("^?\\n" + args[0] + "\\s",Pattern.MULTILINE);
Matcher matcher = pattern.matcher(text);
if (matcher.find()) {
int indexOfNumber = text.indexOf(matcher.group());
//System.out.println(indexOfNumber);
int endIndex = text.indexOf(13, indexOfNumber);// try to find from indexOfNumber to the end of string
// System.out.println(endIndex);
System.out.print(text.substring(indexOfNumber, endIndex));
} else System.out.print("I found nothing!");
// reader.close();
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
*/
// " если ID совпадает с args[0] надо вывести на консоль всю информацию о товаре, то есть всю строку целиком"
/*
D:\\mytasks\\newData2.txt
*/