С реальным файлом выполняется, поток закрыл - почему ругается на почти все условия?
package com.javarush.task.task18.task1827;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/*
Прайсы
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader brr = new BufferedReader(new InputStreamReader(System.in));
String filename = brr.readLine();
brr.close();
if (args.length==4 && args[0].equals("-c")) {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filename)));
List<Integer> ids = new ArrayList<>();
while (br.ready()) {
ids.add(Integer.parseInt(getText(br.readLine(), 0, 8)));
}
String newID = String.valueOf(ids.get(ids.size() - 1) + 1);
addNewProduct(args[1], args[2], args[3], newID, filename);
br.close();
}
}
private static void addNewProduct(String productName, String price, String quantity, String newId, String fileName){
try {
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName, true)));
bufferedWriter.newLine();
bufferedWriter.write(newId + formatString(productName, 30) + formatString(price, 8) + formatString(quantity, 4));
bufferedWriter.flush();
bufferedWriter.close();
} catch (Exception e){
System.out.println("nope");
}
}
private static String formatString(String string, Integer length){
String temp ="";
if (string.length()<length){
temp = string;
for (int i=0; i<(length-string.length());i++){
temp+=" ";
}
return temp;
} else if (string.length()>length){
temp = string.substring(0,length);
return temp;
} else {
return string;
}
}
private static String getText(String line, Integer offset, Integer length){
return line.substring(offset,offset+length);
}
}