Добрый день, валидатор выдает.
Товар должен иметь следующий id, после максимального, найденного в файле.
Форматирование новой строки товара должно четко совпадать с указанным в задании.
Прошу подсказать что не так с моим решением. Если проблема только в валидаторе, то также прошу об этом сообщить.
package com.javarush.task.task18.task1827;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/*
Прайсы
*/
public class Solution {
public static void main(String[] args) throws Exception {
if(args.length == 0) return;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String fileName = bufferedReader.readLine();
List<String> list = new ArrayList<>();
FileReader reader = new FileReader(fileName);
FileWriter writer = new FileWriter(fileName, true);
BufferedReader readerWrapper = new BufferedReader(reader);
if (args[0].equals("-c")){
while (readerWrapper.ready()){
list.add(readerWrapper.readLine());
}
int id;
if (list.size() == 0){
id = 1;
} else id = Integer.parseInt(list.get(list.size()-1).substring(0,8).trim());
id++;
String idStr = String.valueOf(id);
String productName = args[1];
String price = args[2];
String quantity = args[3];
if(idStr.length() <= 8){
while (idStr.length() != 8){
idStr += " ";
}
} else idStr.substring(0, 8);
if(productName.length() <= 30){
while (productName.length() != 30){
productName += " ";
}
} else productName.substring(0, 30);
if(price.length() <= 8){
while (price.length() != 8){
price += " ";
}
} else price.substring(0, 8);
if(quantity.length() <= 4){
while (quantity.length() != 4){
quantity += " ";
}
} else quantity.substring(0, 4);
String result = idStr + productName + price + quantity;
writer.write("\r\n");
writer.write(result);
}
bufferedReader.close();
reader.close();
readerWrapper.close();
writer.close();
}
}