Сделал парсер строки, все потоки закрыл, строка с нужным id печатается, а решение не проходит.
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;
import java.util.Arrays;
/*
Поиск данных внутри файла
где id - int.
productName - название товара, может содержать пробелы, String.
price - цена, double.
quantity - количество, int.
*/
public class Solution {
public static class Product {
private int id;
private String productName;
private double price;
private int quantity;
public Product(int id, String productName, double price, int quantity) {
this.id = id;
this.productName = productName;
this.price = price;
this.quantity = quantity;
}
@Override
public String toString() {
return id + " " + productName + " " + price + " " + quantity;
}
public int getId() {
return id;
}
public String getProductName() {
return productName;
}
public double getPrice() {
return price;
}
public int getQuantity() {
return quantity;
}
}
public static void main(String[] args) throws IOException {
int searchId = Integer.parseInt(args[0]);
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
String fileName = reader.readLine();
BufferedReader fileReader = new BufferedReader(new FileReader(fileName));
ArrayList<Product> products = new ArrayList<>();
while (fileReader.ready()) {
Product product = getProduct(fileReader.readLine());
products.add(product);
}
for (Product product : products) {
if (product.getId() == searchId) {
System.out.println(product.toString());
}
}
}
}
public static Product getProduct(String string) {
String[] str = string.split(" ");
String id = str[0];
String name = str[1];
String price = str[2];
String qty = str[3];
return new Product(Integer.parseInt(id), name, Double.parseDouble(price), Integer.parseInt(qty));
}
}