Только что всё работало, и обновляло, и удаляло. Разве что валидатор ругался, что "требование не выполнено".
А теперь бац!
Exception in thread "main" java.lang.NumberFormatException: For input string: "123"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at com.javarush.task.task18.task1828.Solution.main(Solution.java:34)
package com.javarush.task.task18.task1828;
/*
Прайсы 2
*/
import java.io.*;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader rd = new BufferedReader(new InputStreamReader(System.in));
String fileName = rd.readLine();
rd.close();
//D:\text.txt
if (args.length == 0) {
return;
}
else if (args[0].equals("-u")) {
FileInputStream file = new FileInputStream(fileName);
BufferedReader fileReader = new BufferedReader(new InputStreamReader(file));
ArrayList<String> fileLines = new ArrayList<>();
String line = null;
while ((line = fileReader.readLine()) != null) {
fileLines.add(line);
}
fileReader.close();
file.close();
for (int i = 0; i < fileLines.size(); i++) {
String arrayLine = fileLines.get(i);
String inIdText = arrayLine.substring(0, 8).trim();
int innerId = Integer.parseInt(inIdText);
int argumentId = Integer.parseInt(args[1]);
if (innerId == argumentId) {
String id = (String.format("%-8d", innerId));
String productName = (String.format("%-30s", args[2]));
String price = (String.format("%-8s", args[3]));
String quantity = (String.format("%-4s", args[4]));
String total = id + productName + price + quantity;
fileLines.remove(i);
fileLines.add(i, total);
break;
}
}
FileWriter writer = new FileWriter(fileName);
for (String arrayLine : fileLines) {
writer.append(arrayLine);
}
writer.close();
}
else if (args[0].equals("-d")) {
FileInputStream file = new FileInputStream(fileName);
BufferedReader fileReader = new BufferedReader(new InputStreamReader(file));
ArrayList<String> fileLines = new ArrayList<>();
String line = null;
while ((line = fileReader.readLine()) != null) {
fileLines.add(line);
}
fileReader.close();
file.close();
for (int i = 0; i < fileLines.size(); i++) {
String arrayLine = fileLines.get(i);
String inIdText = arrayLine.substring(0, 8).trim();
int innerId = Integer.parseInt(inIdText);
int argumentId = Integer.parseInt(args[1]);
if (innerId == argumentId) {
fileLines.remove(i);
break;
}
}
FileWriter writer = new FileWriter(fileName);
for (String arrayLine : fileLines) {
writer.append(arrayLine);
}
writer.close();
}
}
}