Три пункта не проходит . У меня в идее все работает , все добавляет
package com.javarush.task.task18.task1827;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/*
Прайсы
*/
public class Solution {
//public static int increment = 0;
//public static List<Integer> list = new ArrayList();
public static void main(String[] args) throws Exception {
List<Integer> list = new ArrayList();
args = new String[]{""};
//args = new String[]{"-c", "Куртка для сноубордистов, разм", "10173.99", "1234"};
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();
FileReader fr = new FileReader(line);
int plus = 50;
while (fr.ready()) {
Integer next = fr.read();
if (next == 13) {
int l = plus - list.size();
for (int i = 0; i < l; i++) {
list.add(32);
}
plus = plus + 52;
}
list.add(next);
}
fr.close();
// for (Integer n : list) {
// System.out.println(n);
// }
switch (args[0]) {
case "-c":
char[] inc = arrayWriter(new char[8], findMaxId(list));
char[] productName = arrayWriter(new char[30], args[1]);
char[] price = arrayWriter(new char[8], args[2]);
char[] quantity = arrayWriter(new char[4], args[3]);
FileWriter fw = new FileWriter(line);
for (Integer i : list) {
fw.write(i);
}
fw.write(inc);
fw.write(productName);
fw.write(price);
fw.write(quantity);
fw.write(13);
fw.write(10);
fw.close();
break;
}
}
public static char[] arrayWriter(char[] ch, String st) {
for (int i = 0; i < ch.length; i++) {
ch[i] = 32;
}
char[] c = st.toCharArray();
for (int i = 0; i < c.length; i++) {
ch[i] = c[i];
}
return ch;
}
public static String findMaxId(List list) {
int increment = 0;
String st = "";
for (int i = 0; i < list.size(); i = i + 52) {
for (int j = i; j < i + 8; j++) {
if (!((char) ((int) list.get(j)) == ' ')) st = st + (char) ((int) list.get(j));
//System.out.print((char) ((int) list.get(j)));
}
if(st.equals("")) st = "0";
if (Integer.parseInt(st) >= increment) increment = Integer.parseInt(st);
st = "";
}
st = String.valueOf(increment + 1);
return st;
}
}