Помогите разобраться, в чём проблема
package com.javarush.task.task18.task1827;
import java.io.*;
/*
Прайсы
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String filename = reader.readLine();
reader.close();
String productName = "";
int pricePosition = 0;
try {
// search price value into args
for (int i = 1; i < args.length; i++){
try{
Double.parseDouble(args[i]);
pricePosition = i;
break;
}catch (NumberFormatException e){productName += args[i] + " ";}
}
switch (args[0]) {
case "-c": putDataToFile(filename, productName, args[pricePosition], args[pricePosition+1]);
break;
}
}catch (ArrayIndexOutOfBoundsException e){}
}
public static void putDataToFile(String fileName,String productName, String price, String quantity){
try(FileReader reader = new FileReader(fileName);
FileWriter writer = new FileWriter(fileName,true)){
BufferedReader fileReader = new BufferedReader(reader);
String lastStr = "";
String[] array;
int point = 0;
//search of max id value
while ((lastStr = fileReader.readLine()) != null){
System.out.println(lastStr);
array = lastStr.split(" ");
if (point < Integer.parseInt(array[0])) point = Integer.parseInt(array[0]);
}
// create strings for write to file
String id = prepareDataForWrite(String.valueOf(++point),8);
String productNameWrite = prepareDataForWrite(productName,30);
String priceWrite = prepareDataForWrite(price,8);
String quantityWrite = prepareDataForWrite(quantity,4);
// wtite to file
if (point == 1) writer.write(id+productNameWrite+priceWrite+quantityWrite);
else writer.write("\n"+id+productNameWrite+priceWrite+quantityWrite);
fileReader.close();
}catch(IOException e) {}
}
public static String prepareDataForWrite(String data, int writeSize){
char[] ch = data.toCharArray();
String localData = "";
for(int i = 0; i < writeSize; i++){
if (i < ch.length) localData += ch[i];
else localData += " ";
}
return localData;
}
}