package com.javarush.test.level18.lesson10.home07;
/* Поиск данных внутри файла
Считать с консоли имя файла
Найти в файле информацию, которая относится к заданному id, и вывести ее на экран в виде, в котором она записана в файле.
Программа запускается с одним параметром: id (int)
Закрыть потоки. Не использовать try-with-resources
В файле данные разделены пробелом и хранятся в следующей последовательности:
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;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
BufferedReader idReader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), StandardCharsets.UTF_8));
ArrayList<String> list = new ArrayList<>();
String line;
while ((line = idReader.readLine()) != null) {
list.add(line);
}
for (String s : list) {
ArrayList<String> goodArray = new ArrayList<>();
StringTokenizer stringTokenizer = new StringTokenizer(s, " ");
while(stringTokenizer.hasMoreTokens()) {
goodArray.add(stringTokenizer.nextToken());
}
if (args[0].equals(goodArray.get(0))) {
printGood(goodArray);
break;
}
}
reader.close();
idReader.close();
}
private static void printGood(ArrayList<String> goodArray) {
for (int i = 0; i < goodArray.size() - 1; i++) {
System.out.print(goodArray.get(i) + " ");
}
System.out.println(goodArray.get(goodArray.size() - 1));
}
}
Leave A Comment