level18.lesson10.bonus02 не проходит тестирование?

Доброго времени суток! Помогите, пожалуйста, с задачей. Не могу понять, почему не принимается решение.

Прайсы

CrUD для таблицы внутри файла. Считать с консоли имя файла для операций CrUD. Программа запускается со следующим набором параметров:

-c productName price quantity

Значения параметров:

где id — 8 символов.
productName — название товара, 30 chars (60 bytes).
price — цена, 8 символов. quantity — количество, 4 символа.

-c — добавляет товар с заданными параметрами в конец файла, генерирует id самостоятельно, инкрементируя максимальный id, найденный в файле.

В файле данные хранятся в следующей последовательности (без разделяющих пробелов): id productName price quantity Данные дополнены пробелами до их длины.

Пример:

19846 Шорты пляжные синие 159.00 12
198478 Шорты пляжные черные с рисунко173.00 17
19847983Куртка для сноубордистов, разм10173.991234

import java.io.*;
    import java.util.ArrayList;
    public class Solution {
    static String result = "";
    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String file = reader.readLine();
        reader.close();
        if (args.length==0 || args.length<4) return;
        if (args[0].equals("-c")){
            String new_id = makeId(file);
            String new_product = makeProduct(args[1]);
            String new_price = makePrice(args[2]);
            String new_quantity = makeQuantity(args[3]);
            result = new_id + new_product + new_price + new_quantity;
            FileWriter writer = new FileWriter(file,true);
            writer.write("\r\n" + result);
            writer.close();
        }
    }
    public static String makeId(String file)throws IOException{
        ArrayList<Integer> list = new ArrayList<Integer>();
        FileReader fr = new FileReader(file);
        BufferedReader reader = new BufferedReader(fr);
        String line = reader.readLine();
        while (line != null) {
            line = line.substring(0,8).trim();
            list.add(Integer.parseInt(line));
            line = reader.readLine();
        }
        int max = Integer.MIN_VALUE;
        for (Integer i:list)
            if (i>max)
                max = i;
        max++;
        String max_id = Integer.toString(max);
        if (max_id.length()>8)
            max_id = max_id.substring(0,8);
        if (max_id.length()<8)
            for (int i = max_id.length(); i < 8; i++)
                max_id = max_id + " ";
        fr.close();
        reader.close();
        return max_id;
    }
    public static String makeProduct(String product){
        String str = product;
        if (str.length()>30)
            str = str.substring(0,30);
        if (str.length()<30)
            for (int i = str.length(); i < 30; i++)
                str = str + " ";
        return str;
    }
    public static String makePrice(String price){
        String str = price;
        if (str.length()>8)
            str = str.substring(0,8);
        if (str.length()<8)
            for (int i = str.length(); i < 4; i++)
                str = str + " ";
        return str;
    }
    public static String makeQuantity(String quantity){
        String str = quantity;
        if (str.length()>4)
            str = str.substring(0,4);
        if (str.length()<4)
            for (int i = str.length(); i < 4; i++)
                str = str + " ";
        return str;
    }
 }

Комментариев нет

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.