Программа отрабатывает всё по ТЗ валидатор пишет о 4 параметрах
package com.javarush.task.task18.task1827;
import java.io.*;
/*
Прайсы
*/
public class Solution {
public static void main(String[] args) throws Exception {
final int productNameSize = 30;
final int priceSize = 8;
final int quantitySize = 4;
final int idSize= 8;
String finish = "";
String line = "";
String lastSting = "";
String randomIdS = null;
int parsIntFinish = 0;
int randomIdSInt;
int check = 0;
int dinamick = 7;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));//читаем название файла
String file = bufferedReader.readLine(); // кладём название файла
FileReader reader = new FileReader(file); // создаём ридер, передаём название
BufferedReader br = new BufferedReader(reader) ; // создаём буфер пердаём название
int randomId = 0;
for (int z = 0; z < 1; z++) {
randomId = (int) (Math.random() * 20000000);
randomIdS = String.valueOf(randomId);
if (randomIdS.length() < 8) {
randomIdS = randomIdS + "1";
z = z - 1;
} else {
while ((line = br.readLine()) != null) {//читаем файл выясняем последний номер
if (line == null) {
break;
}
lastSting = line;
}
char[] strToArray = lastSting.toCharArray();
if(check <= 0 && strToArray.length > 1) {
for (int i = 0; i <= dinamick; i++) { //первым инднксом приходит то чем инициализировали
if(strToArray[i] != '\uFEFF') {// не правильно понять что в char [] пустое
finish = finish + strToArray[i];
check++;
}else if(strToArray[i] == '\uFEFF'){// не правильно
dinamick++;
}
}
}
if(strToArray.length > 1) {
parsIntFinish = Integer.parseInt(finish);
randomIdSInt = Integer.parseInt(randomIdS);
if (randomIdSInt < parsIntFinish) {
z = z - 1;
}
}
}
}
int [] arraySize = {idSize, productNameSize, priceSize, quantitySize};
if(args[0].equals("-c")) {
FileWriter fileWriter = new FileWriter(file, true);// возможно сделать через поток
fileWriter.write(randomIdS);
for (int i = 1; i <= 3; i++) {
if(args[i].length() < arraySize[i]) {
fileWriter.write(args[i]);
for (int j = 0; j < arraySize[i] - args[i].length(); j++) {
fileWriter.write(" ");
}
}else {
char[] strToArray1= args[i].toCharArray();
for (int j = 0; j < arraySize[i]; j++) {
fileWriter.write(strToArray1[j]);
}
}
}
fileWriter.write(System.lineSeparator());
fileWriter.close();
bufferedReader.close();
reader.close();
}
}
}