When I run the tests, everything is correct, but maybe the verifier wants something else. A little help could be of great use to me.
package com.codegym.task.task18.task1828;
/*
Prices 2
*/
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String name = reader.readLine();
reader.close();
reader = new BufferedReader(new FileReader(name));
HashMap<Integer, String> map = new HashMap<>();
while (reader.ready()) {
String line = reader.readLine();
int id = Integer.parseInt(line.split(" ")[0]);
map.putIfAbsent(id, line);
}
BufferedWriter writer = new BufferedWriter(new FileWriter(name));
if (args[0].equals("-u")) {
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<Integer, String> entry = iterator.next();
if (Integer.parseInt(args[1]) == entry.getKey()) {
String newLine = String.format("%-8s%-30s%-8s%-4s", args[1], args[2], args[3], args[4]);
map.replace(entry.getKey(), entry.getValue(), newLine);
}
}
for (Map.Entry<Integer, String> entry :
map.entrySet()) {
writer.write(entry.getValue());
writer.newLine();
}
} else if (args[0].equals("-d")) {
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<Integer, String> entry = iterator.next();
if (Integer.parseInt(args[1]) == entry.getKey()) {
iterator.remove();
}
}
for (Map.Entry<Integer, String> entry :
map.entrySet()) {
writer.write(entry.getValue());
writer.newLine();
}
}
reader.close();
writer.close();
}
}