It run as expected in intelij. please help
package com.codegym.task.task18.task1822;
import java.io.*;
import java.util.*;
/*
Finding data inside a file
*/
public class Solution {
public static void main(String[] args) throws Exception{
ArrayList<Product> products = new ArrayList<>();
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String file = bf.readLine();
bf.close();
try(FileInputStream fp = new FileInputStream(file)) {
byte[] buffer = new byte[fp.available()];
int count = fp.read(buffer);
String st = new String(buffer);
String[] starr = st.split(" ");
for(int i = 0,j = 0 ; i<starr.length ; ){
products.add(new Product());
boolean idFlag = true;
boolean nameFlag = false;
boolean priceFlag = false;
boolean quantityFlag = false;
if(idFlag && Solution.isNumber(starr[i])){
int n = Integer.parseInt(starr[i]);
products.get(j).setId(n);
nameFlag = true;
idFlag = false;
//System.out.println("Id : "+products.get(j).getId());
i++;
}
if(nameFlag && !(Solution.isNumber(starr[i]))){
String name = starr[i];
i++;
while (!(Solution.isNumber(starr[i]))){
name = name+" "+starr[i];
i++;
}
products.get(j).setName(name);
//System.out.println("Name : "+products.get(j).getName());
priceFlag = true;
nameFlag = false;
}
if(priceFlag && Solution.isNumber(starr[i])){
double d = Double.parseDouble(starr[i]);
products.get(j).setPrice(d);
// System.out.println("Price : "+products.get(j).getPrice());
quantityFlag = true;
priceFlag = false;
i++;
}
if(quantityFlag && Solution.isNumber(starr[i])){
int n = Integer.parseInt(starr[i]);
products.get(j).setQuantity(n);
// System.out.println("Quantity : "+products.get(j).getPrice());
quantityFlag = false;
i++;
j++;
}
}
int searchid = Integer.parseInt(args[0]);
for(Product prdct : products){
if(prdct.getId() == searchid){
System.out.println("Id : "+prdct.getId());
System.out.println("Name : "+prdct.getName());
System.out.println("Price : "+prdct.getPrice());
System.out.println("Quantity : "+prdct.getQuantity());
break;
}
}
}
}
static boolean isNumber(String s){
try{
double cd = Double.parseDouble(s);
return true;
}catch (NumberFormatException e){
return false;
}
}
}