Не могу понять, что может быть не так.
Может просто валидатор не настроен на обработку класса Files?
Или обязательно нужно использовать InputStream & OutputStream? Но в условиях этого нет...
package com.javarush.task.task18.task1828;
/* Прайсы 2 */
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
assert args != null;
CRUD(args);
}
private static void CRUD(String[] args) {
Scanner scan = new Scanner(System.in);
String fileName = scan.nextLine();
scan.close();
String ID = args[1];
try (BufferedReader inStream = new BufferedReader(new FileReader(fileName))) {
List<String> fileContent = new LinkedList<>(Files.readAllLines(Paths.get(fileName), StandardCharsets.UTF_8));
if (args[0].startsWith("-u")) {
if (inStream.ready()) {
for (String s : fileContent) {
if (s.substring(0, 8).trim().equals(ID)) {
fileContent.set(fileContent.indexOf(s), String.format("%-8.8s%-30.30s%-8.8s%-4.4s", ID, args[2], args[3], args[4]));
}
}
Files.write(Paths.get(fileName), fileContent, StandardCharsets.UTF_8);
}
} else if (args[0].startsWith("-d")) {
if (inStream.ready()) {
fileContent.removeIf(s -> s.substring(0, 8).trim().equals(ID));
Files.write(Paths.get(fileName), fileContent, StandardCharsets.UTF_8);
}
}
} catch (IOException e) { e.printStackTrace(); }
}
}