Не проходит 3, 4 , 5 условие задачи. Логика вроде правильная, что не так???
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 reader = new BufferedReader(new InputStreamReader(System.in));
String filename = reader.readLine();
if (args[0].equals("u")){
BufferedReader reader2 =new BufferedReader(new FileReader(filename));
ArrayList<String>list1 = new ArrayList<>();
String line;
while ((line=reader2.readLine())!=null){
list1.add(line);
}
reader2.close();
BufferedWriter writer1 = new BufferedWriter(new FileWriter(filename));
for (int i = 0; i < list1.size(); i++) {
int id = Integer.parseInt(list1.get(i).substring(0,8).trim());
if (id==Integer.parseInt(args[1])){
String result = String.format("%-8.8s%-30.30s%-8.8s%-4.4s",args[1],args[2],args[3],args[4]);
list1.set(i,result);
}
}
for (String data: list1){
writer1.write(data);
}
writer1.close();
}
else if (args[0].equals("d")){
BufferedReader reader1 =new BufferedReader(new FileReader(filename));
ArrayList<String>list = new ArrayList<>();
String line;
while ((line=reader1.readLine())!=null){
list.add(line);
}
reader1.close();
list.removeIf(s -> s.substring(0, 8).trim().equals(args[1]));
BufferedWriter writer = new BufferedWriter(new FileWriter(filename));
for (String x:list){
writer.write(x);
}
writer.close();
}
reader.close();
}
}