Вроде все работает но не понимаю что не так.
package com.javarush.task.task18.task1827;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/*
Прайсы
*/
public class Solution {
public static void main(String[] args) throws Exception {
/*args = new String[4];
args[0] = "-c";
args[1] = "QWEQWEQW";
args[2] = "fghf";
args[3] = "cools";*/
if (args.length != 0) {
if (args[0].equals("-c")) {
BufferedReader consolereader = new BufferedReader(new InputStreamReader(System.in));
String file = consolereader.readLine();
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
consolereader.close();
String last = null;
while (reader.ready()) {
last = reader.readLine();
}
reader.close();
String lastId = last.substring(0,8);
if (lastId.contains(" ")) { lastId = lastId.substring(0,lastId.indexOf(" ")); }
int id = Integer.parseInt(lastId);
id++;
String finish = "\n" + id;
if (finish.length() > 8) {
finish = finish.substring(0,8);
}
while (finish.length() != 8) {
finish += " ";
}
if (args[1].length() > 30) {
args[1] = args[1].substring(0,30);
}
while (args[1].length() != 30) {
args[1] += " ";
}
finish += args[1];
if (args[2].length() > 8) {
args[2] = args[2].substring(0,8);
}
while (args[2].length() != 8) {
args[2] += " ";
}
finish += args[2];
if (args[3].length() > 4) {
args[3] = args[3].substring(0,4);
}
while (args[3].length() != 4) {
args[3] += " ";
}
finish += args[3];
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true)));
writer.write(finish);
writer.close();
}
}
}
}