При тестировании всё происходит так, как должно быть - если параметр "-u", то в файле обновляется информация по товару с определенным id, если параметр "-d", то удаляется. Да, по сути, я просто перезаписываю файл новыми данными, не обновляю или удаляю данные прямо в файле, но в итоге же получается файл нужного формата. Помогите разобраться, что не так?
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) {
if (args.length == 0) return;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String filename = "";
try {
filename = bufferedReader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
ArrayList<String> list = new ArrayList<>();
try (BufferedReader bufferedFileReader = new BufferedReader(new FileReader(filename))){
String data;
while (bufferedFileReader.ready() && !(data = bufferedFileReader.readLine()).equals("")) {
int index = Integer.parseInt(data.split(" ")[0].trim());
if (index == Integer.parseInt(args[1])) {
if (args[0].equals("-u")) data = String.format("%-8d%-30s%-8s%-4s", index, args[2], args[3], args[4]);
else if (args[0].equals("-d")) continue;
}
list.add(data);
}
} catch (IOException e) {
e.printStackTrace();
}
try (FileWriter fileWriter = new FileWriter(filename)) {
for (String data : list) {
fileWriter.append(data);
fileWriter.append("\n");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}