подскажите где я накосячил? Новый вариант:
public class Solution {
    public static void main(String[] args) throws Exception {

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String fileName = reader.readLine();
        reader.close();

        if (args.length > 0 && args[0].equals("-c") && args[1] !=null && args[2]!=null && args[3]!=null){
        BufferedReader bufferedReader = new BufferedReader(new FileReader(fileName));
        String strNumber;
        int number;

        int maxNumber = Integer.MIN_VALUE;
        strNumber = "";

        while (bufferedReader.ready() && strNumber != null){
            strNumber = bufferedReader.readLine();
            strNumber = strNumber.substring(0, 8).trim();
            number = Integer.parseInt(strNumber);
            if (number > maxNumber)
                maxNumber = number;
        }

        bufferedReader.close();



            Integer id = maxNumber + 1;

            String productName = args[1];
            while (productName.length() < 30)
                productName += " ";

            if (productName.length() > 30)
                productName = productName.substring(0, 30);

            String price = args[2];
            while (price.length() < 8)
                price += " ";

            if (price.length() > 8)
                price = price.substring(0, 8);

            String quantity = args[3];
            while (quantity.length() < 4)
                quantity += " ";

            if (quantity.length() > 4)
                quantity = quantity.substring(0, 4);

            FileOutputStream fileOutputStream = new FileOutputStream(fileName);

            String strId = String.valueOf(id);
            while (strId.length() < 8){
                strId += " ";
            }
            String strFinal = "\n" + strId + productName + price + quantity;
            fileOutputStream.write(strFinal.getBytes());
            fileOutputStream.flush();
            fileOutputStream.close();
        }
    }
}