Не проходит пункт "Форматирование новой строки товара должно четко совпадать с указанным в задании."
Хотя в файл пишеться все корректно (см. вторую вкладку).
Уже нет идей как бороться с валидатором.
package com.javarush.task.task18.task1827;
/*
Прайсы
*/
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Locale;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
if ((args.length==4) && (args[0].equals("-c"))) {
int id = getLastID(fileName)+ 1;
writeToFile(id, args[1], args[2], args[3], fileName);
}
}
public static int getLastID(String fileName) throws Exception {
BufferedReader fileReader = new BufferedReader(new FileReader(fileName));
ArrayList<Integer> listID = new ArrayList();
while (fileReader.ready()) {
String s = fileReader.readLine();
Integer i = Integer.parseInt((s.substring(0, 8)).trim());
listID.add(i);
}
fileReader.close();
int id = Collections.max(listID);
return id;
}
public static void writeToFile (int id, String productName, String price, String quantity, String fileName) throws Exception {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(System.lineSeparator());
stringBuilder.append(String.format("%8d", id));
stringBuilder.append(String.format("%-30.30s", productName));
stringBuilder.append(String.format(Locale.ROOT, "%-8.2f", Double.parseDouble(price)));
stringBuilder.append(String.format("%4d", Integer.parseInt(quantity)));
FileWriter writer = new FileWriter(fileName, true);
writer.write(stringBuilder.toString());
writer.close();
}
}