На тестовом файле все работает как надо, не могу понять, что в данном случае не нравится валидатору
package com.javarush.task.task18.task1828;
/*
Прайсы
*/
import java.io.*;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
if (args.length == 0){
reader.close();
return;
}
else {
BufferedReader reader1 = new BufferedReader(new FileReader(fileName));
ArrayList<String> list = new ArrayList<>();
if (args[0].equals("-u")) {
String id = args[1];
StringBuffer sbId = new StringBuffer(id);
sbId.setLength(8);
String productName = args[2];
StringBuffer sbProductName = new StringBuffer(productName);
sbProductName.setLength(30);
String price = args[3];
StringBuffer sbPrice = new StringBuffer(price);
sbPrice.setLength(8);
String quantity = args[4];
StringBuffer sbQuantity = new StringBuffer(quantity);
sbQuantity.setLength(4);
String item = sbId + "" + sbProductName + sbPrice + sbQuantity;
while (reader1.ready()) {
String line = reader1.readLine();
if (line.trim().length() != 0)
list.add(line);
}
for (int i = 0; i < list.size(); i++) {
if (Integer.parseInt(list.get(i).substring(0, 8).trim()) == Integer.parseInt(id.trim())) {
list.set(i, item);
}
}
FileOutputStream outputStream1 = new FileOutputStream(fileName);
outputStream1.close();
FileOutputStream outputStream2 = new FileOutputStream(fileName, true);
for (int i = 0; i < list.size(); i++) {
outputStream2.write((list.get(i) + "\r").getBytes());
}
outputStream2.close();
reader.close();
reader1.close();
} else if (args[0].equals("-d")) {
String id = args[1];
while (reader1.ready()) {
String line = reader1.readLine();
if (line.trim().length() != 0)
list.add(line);
}
for (int i = 0; i < list.size(); i++) {
if (Integer.parseInt(list.get(i).substring(0, 8).trim()) == Integer.parseInt(id.trim())) {
list.remove(i);
}
}
FileOutputStream outputStream1 = new FileOutputStream(fileName);
outputStream1.close();
FileOutputStream outputStream2 = new FileOutputStream(fileName, true);
for (int i = 0; i < list.size(); i++) {
outputStream2.write((list.get(i) + "\r").getBytes());
}
outputStream2.close();
reader.close();
reader1.close();
}
}
}
}
package com.javarush.task.task18.task1828;
/*
Прайсы
*/
import java.io.*;
import java.sql.ClientInfoStatus;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
if (args.length == 0){
reader.close();
return;
}
else {
BufferedReader reader1 = new BufferedReader(new FileReader(fileName));
ArrayList<String> list = new ArrayList<>();
if (args[0].equals("-u")) {
String id = args[1];
StringBuffer sbId = new StringBuffer(id);
sbId.setLength(8);
String productName = args[2];
StringBuffer sbProductName = new StringBuffer(productName);
sbProductName.setLength(30);
String price = args[3];
StringBuffer sbPrice = new StringBuffer(price);
sbPrice.setLength(8);
String quantity = args[4];
StringBuffer sbQuantity = new StringBuffer(quantity);
sbQuantity.setLength(4);
String item = sbId + "" + sbProductName + sbPrice + sbQuantity;
while (reader1.ready()) {
String line = reader1.readLine();
if (line.trim().length() != 0)
list.add(line);
}
for (int i = 0; i < list.size(); i++) {
if (Integer.parseInt(list.get(i).substring(0, 8).trim()) == Integer.parseInt(id.trim())) {
list.set(i, item);
}
}
FileOutputStream outputStream1 = new FileOutputStream(fileName);
outputStream1.close();
FileOutputStream outputStream2 = new FileOutputStream(fileName, true);
for (int i = 0; i < list.size(); i++) {
outputStream2.write((list.get(i) + "\r").getBytes());
}
outputStream2.close();
reader.close();
reader1.close();
} else if (args[0].equals("-d")) {
String id = args[1];
while (reader1.ready()) {
String line = reader1.readLine();
if (line.trim().length() != 0)
list.add(line);
}
for (int i = 0; i < list.size(); i++) {
if (Integer.parseInt(list.get(i).substring(0, 8).trim()) == Integer.parseInt(id.trim())) {
list.remove(i);
}
}
FileOutputStream outputStream1 = new FileOutputStream(fileName);
outputStream1.close();
FileOutputStream outputStream2 = new FileOutputStream(fileName, true);
for (int i = 0; i < list.size(); i++) {
outputStream2.write((list.get(i) + "\r").getBytes());
}
outputStream2.close();
reader.close();
reader1.close();
}
}
}
}