Тестил на реальных файлах, все условия выполняются. Валидатор не пускает. Что не так?
package com.javarush.task.task18.task1827;
/*
Прайсы
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws Exception {
String key = args[0];
String productName = String.format("%-30s", args[1]);
String price = String.format("%-8s", args[2]);
String quantity = String.format("%-4s", args[3]);
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String nameFile = reader.readLine();
reader.close();
if (key.equals("-c")) {
File file = new File(nameFile);
String lastLine = null;
RandomAccessFile raf = new RandomAccessFile(file, "r");
long startIdx = file.length();
while (startIdx >= 0 && (lastLine == null || lastLine.length() == 0)) {
raf.seek(startIdx);
if (startIdx > 0)
raf.readLine();
lastLine = raf.readLine();
startIdx--;
}
raf.close();
long id = Long.parseLong(lastLine.substring(0, 8));
long nextId = id + 1;
String idLine = String.format("%-8s", nextId);
StringBuilder insertLastLine = new StringBuilder();
insertLastLine.append(idLine)
.append(productName)
.append(price)
.append(quantity)
.append(System.lineSeparator());
FileOutputStream outputStream = new FileOutputStream(file, true);
outputStream.write(insertLastLine.toString().getBytes());
outputStream.close();
}
}
}