На тестовом файле все работает как надо, не могу понять, что в данном случае не нравится валидатору
package com.javarush.task.task18.task1828;

/*
Прайсы
*/

import java.io.*;
import java.util.ArrayList;

public class Solution {
    public static void main(String[] args) throws Exception {

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        String fileName = reader.readLine();

        if (args.length == 0){
            reader.close();
            return;
        }

        else {

            BufferedReader reader1 = new BufferedReader(new FileReader(fileName));

            ArrayList<String> list = new ArrayList<>();

            if (args[0].equals("-u")) {

                String id = args[1];

                StringBuffer sbId = new StringBuffer(id);
                sbId.setLength(8);

                String productName = args[2];

                StringBuffer sbProductName = new StringBuffer(productName);
                sbProductName.setLength(30);

                String price = args[3];

                StringBuffer sbPrice = new StringBuffer(price);
                sbPrice.setLength(8);

                String quantity = args[4];

                StringBuffer sbQuantity = new StringBuffer(quantity);
                sbQuantity.setLength(4);

                String item = sbId + "" + sbProductName + sbPrice + sbQuantity;

                while (reader1.ready()) {
                    String line = reader1.readLine();
                    if (line.trim().length() != 0)
                        list.add(line);
                }

                for (int i = 0; i < list.size(); i++) {

                    if (Integer.parseInt(list.get(i).substring(0, 8).trim()) == Integer.parseInt(id.trim())) {
                        list.set(i, item);
                    }
                }

                FileOutputStream outputStream1 = new FileOutputStream(fileName);
                outputStream1.close();

                FileOutputStream outputStream2 = new FileOutputStream(fileName, true);

                for (int i = 0; i < list.size(); i++) {
                    outputStream2.write((list.get(i) + "\r").getBytes());
                }

                outputStream2.close();
                reader.close();
                reader1.close();

            } else if (args[0].equals("-d")) {

                String id = args[1];

                while (reader1.ready()) {
                    String line = reader1.readLine();
                    if (line.trim().length() != 0)
                        list.add(line);
                }

                for (int i = 0; i < list.size(); i++) {

                    if (Integer.parseInt(list.get(i).substring(0, 8).trim()) == Integer.parseInt(id.trim())) {
                        list.remove(i);
                    }
                }

                FileOutputStream outputStream1 = new FileOutputStream(fileName);
                outputStream1.close();

                FileOutputStream outputStream2 = new FileOutputStream(fileName, true);

                for (int i = 0; i < list.size(); i++) {
                    outputStream2.write((list.get(i) + "\r").getBytes());
                }

                outputStream2.close();
                reader.close();
                reader1.close();
            }
        }
    }
}