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