Понимаю, что топорное решение, но все же.
Все работает. Валидатор не принимает, не говорит почему. Примера параметров, чтобы сработало некорректно я не придумал.))
package com.javarush.task.task18.task1827;
/*
Прайсы
*/
import java.io.*;
import java.nio.Buffer;
public class Solution {
public static void main(String[] args) throws Exception {
String fileName = new BufferedReader(new InputStreamReader(System.in)).readLine();
if (args.length == 0) return;
if (args[0].equals("-c")) {
String result;
BufferedReader bufferedReader = new BufferedReader((new FileReader(new File(fileName))));
int index = 0;
while (true) {
String line = bufferedReader.readLine();
if (line == null || line.equals("")) break;
else {
int x = Integer.parseInt(line.substring(0, 8).replaceAll(" ", ""));
if (index < x) index = x;
}
}
bufferedReader.close();
index++;
String indexS = index + "";
int y = 8 - indexS.length();
for (int i = 0; i < y; i++) {
indexS = indexS + " ";
}
if (args[1].length() > 30) args[1] = args[1].substring(0, 30);
else {
y = 30 - args[1].length();
for (int i = 0; i < y; i++) {
args[1] = args[1] + " ";
}
}
if (args[2].length() > 8) args[2] = args[2].substring(0, 8);
else {
y = 8 - args[2].length();
for (int i = 0; i < y; i++) {
args[2] = args[2] + " ";
}
}
if (args[3].length() > 4) args[3] = args[3].substring(0, 4);
else {
y = 4 - args[3].length();
for (int i = 4; i < y; i++) {
args[3] = args[3] + " ";
}
}
result = "\n" + indexS + args[1] + args[2] + args[3];
FileOutputStream fileOutputStream = new FileOutputStream(fileName, true);
fileOutputStream.write(result.getBytes());
fileOutputStream.close();
}
}
}