Добрый день!
Не проходит валидацию. Вроде как все работает, на файле проверяю, индекс считывает, новый создает. Форматирование по условию, потоки закрываю.
![]()
![](https://cdn.javarush.com/images/system/21425dd4-c1fe-48c6-9573-e9f55b324d3a/1024.jpeg)
package com.javarush.task.task18.task1827;
/*
Прайсы
*/
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) throws Exception {
if (args.length != 0 && args[0].equals("-c")) {
//Read file to ArrayList
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName= reader.readLine();
reader.close();
Scanner readFile = new Scanner(new File(fileName));
ArrayList<String> fileStrings = new ArrayList<>();
while (readFile.hasNext()) {
fileStrings.add(readFile.nextLine());
}
readFile.close();
//Get last index
int newIndex = Integer.parseInt(fileStrings.get(fileStrings.size()-1).substring(0, fileStrings.get(fileStrings.size()-1).indexOf(" ")));
newIndex++;
//Write to file
FileOutputStream writeFile = new FileOutputStream(fileName, true);
String result = "\n";
String [] index = Integer.toString(newIndex).split("");
for (int i = 0; i < 8; i++) {
if (i < index.length) {
result += index[i];
}
else {
result += " ";
}
}
String [] productName = args[1].split("");
for (int i = 0; i < 30; i++) {
if (i < productName.length) {
result += productName[i];
}
else {
result +=" ";
}
}
String [] price = args[2].split("");
for (int i = 0; i < 8; i++) {
if (i < price.length) {
result +=price[i];
}
else {
result +=" ";
}
}
String [] quantity = args[3].split("");
for (int i = 0; i < 4; i++) {
if (i < quantity.length) {
result += quantity[i];
}
else {
result +=" ";
}
}
writeFile.write(result.getBytes());
writeFile.close();
}
}
}