Если задачу запускать с параметрами которые прописаны в main, то все работает. Если прописать параметры в меню IDEA, то выбрасывает исключение NumberFormatException в строке 30. Может кто-то подсказать почему и что исправить?
package com.javarush.task.task18.task1828;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/*
Прайсы 2
*/
public class Solution {
public static void main(String[] args) throws IOException {
args = new String[] { "-u", "12345679", "Куртка для сноубордистов, размеры есть разные", "10173.99", "12345" };
//args = new String[] {"-d", "12345679"};
ArrayList<Integer> listId = new ArrayList<Integer>();
ArrayList<String> listString = new ArrayList<String>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter file name");
String fileName = reader.readLine();
if (args.length == 0) return;
BufferedReader fr = new BufferedReader(new FileReader(fileName));
while (fr.ready()) {
String str = fr.readLine();
listId.add(Integer.parseInt(str.substring(0,8).trim()));
listString.add(str);
}
FileWriter writer = new FileWriter(fileName, false);
int id = Integer.parseInt(args[1]);
String productName = String.format("%-30s", args[2]).substring(0,30);
String price = String.format("%-8.2f", Float.parseFloat(args[3])).substring(0,8);
String quantity = String.format("%-4d", Integer.parseInt(args[4])).substring(0,4);
if (args[0].equals("-u")) {
String sb = id + productName + price + quantity;
System.out.println("-u");
for (int i = 0; i < listId.size(); i++) {
if (id == listId.get(i)) {
listString.set(i, sb);
}
}
for (String s : listString) {
//System.out.println(s);
writer.write(s);
writer.write("\n");
}
}
if (args[0].equals("-d")) {
System.out.println("-d");
for (int i = 0; i < listId.size(); i++) {
if (id == listId.get(i))
listString.remove(i);
}
for (String s : listString) {
//System.out.println(s);
writer.write(s);
writer.write("\n");
}
}
writer.close();
fr.close();
}
}
//d:/Стажировка JAVA/Tasks Head First/src/1.txt