Не принимает валидатор, но на пилотном файле все работает
P.S. посмотрел как реализуют решение другие, понял, что можно сделать гораздо проще, но хотелось бы узнать в чем проблема моего способа:(
package com.javarush.task.task18.task1822;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Поиск данных внутри файла
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String str = "";
String path = bufferedReader.readLine();
FileReader fileReader = new FileReader(path);
//лист для хранения строк из файла
ArrayList<String> arrayList = new ArrayList<>();
//записываем содержимое файла в строку
while (fileReader.ready()) {
str += (char) fileReader.read();
}
//разбиваем строку в массив строк (разделитель - символ переноса строки)
String[] strArray = str.split("\n");
//переносим данные из массива в лист
for (int i = 0; i < strArray.length; i++) {
arrayList.add(strArray[i]);
}
//перебираем лист и если находим нужную строку, выводим в консоль
for (String s: arrayList){
if (s.startsWith(args[0])) {
System.out.println(s);
}
fileReader.close();
}
}
}
/*
Поиск данных внутри файла
Считать с консоли имя файла.
Найти в файле информацию, которая относится к заданному id, и вывести ее на экран в виде, в котором она записана в файле.
Программа запускается с одним параметром: id (int).
Закрыть потоки.
В файле данные разделены пробелом и хранятся в следующей последовательности:
id productName price quantity
где id - int.
productName - название товара, может содержать пробелы, String.
price - цена, double.
quantity - количество, int.
Информация по каждому товару хранится в отдельной строке.
Пример содержимого файла:
194 хлеб 12.6 25
195 масло сливочное 52.2 12
196 молоко 22.9 19
Пример вывода для id = 195:
195 масло сливочное 52.2 12
Requirements:
1. Программа должна считать имя файла с консоли.
2. Создай для файла поток для чтения.
3. Программа должна найти в файле и вывести информацию о id, который передается первым параметром.
4. Поток для чтения из файла должен быть закрыт.*/