Объясните почему не проходит валидацию по 3 пункту! Мозг уже взрывается. Вроде предусмотрел все!!! Даже момент с заменой строк!
package com.javarush.task.task18.task1828;
import java.io.*;
import java.util.*;
/*
Прайсы 2
*/
public class Solution {
public static void main(String[] args) throws Exception {
if (args.length == 5 && args[0].equals("-u")) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
try {
BufferedReader fileBufferReader = new BufferedReader(new FileReader(fileName));
Map<Long, String> mapOfStringFile = new HashMap<>();
while (fileBufferReader.ready()) {
String stringTemp = fileBufferReader.readLine();
long id = Long.parseLong(stringTemp.substring(0, 8).trim());
mapOfStringFile.put(id, stringTemp);
}
List<Long> listKey = new ArrayList<>(mapOfStringFile.keySet());
Collections.sort(listKey);
fileBufferReader.close();
for (Map.Entry<Long, String> pair : mapOfStringFile.entrySet()) {
long idTemp = pair.getKey();
if (idTemp == Integer.parseInt(args[1])) {
mapOfStringFile.put(idTemp, String.format("%-8.8s%-30.30s%-8.8s%-4.4s", args[1], args[2], args[3], args[4]));
}
}
StringBuilder stringBuilder = new StringBuilder();
for (Long key : listKey) {
String strTemp = mapOfStringFile.get(key);
stringBuilder.append(strTemp);
stringBuilder.append("\n");
}
String newStringsOfFile = stringBuilder.toString();
BufferedWriter fileBufferWriter = new BufferedWriter(new FileWriter(fileName));
fileBufferWriter.write(newStringsOfFile);
fileBufferWriter.close();
} catch (FileNotFoundException e) {
System.out.println("Файл не найден.");
}
} else if (args.length == 2 && args[0].equals("-d")) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
try {
BufferedReader fileBufferReader = new BufferedReader(new FileReader(fileName));
Map<Long, String> mapOfStringFile = new HashMap<>();
while (fileBufferReader.ready()) {
String stringTemp = fileBufferReader.readLine();
Long id = Long.parseLong(stringTemp.substring(0, 8).trim());
mapOfStringFile.put(id, stringTemp);
}
List<Long> listKey = new ArrayList<>(mapOfStringFile.keySet());
Collections.sort(listKey);
fileBufferReader.close();
long idForDel = 0;
for (Map.Entry<Long, String> pair : mapOfStringFile.entrySet()) {
long idTemp = pair.getKey();
if (idTemp == Long.parseLong(args[1])) {
idForDel = idTemp;
}
}
mapOfStringFile.remove(idForDel);
listKey.remove(idForDel);
StringBuilder stringBuilder = new StringBuilder();
for (Long key : listKey) {
String strTemp = mapOfStringFile.get(key);
stringBuilder.append(strTemp);
stringBuilder.append("\n");
}
String newStringsOfFile = stringBuilder.toString();
BufferedWriter fileBufferWriter = new BufferedWriter(new FileWriter(fileName));
fileBufferWriter.write(newStringsOfFile);
fileBufferWriter.close();
} catch (FileNotFoundException e) {
System.out.println("Файл не найден.");
}
}
}
}