public class Solution {
    public static void main(String[] args) throws IOException {
        if (args.length > 0) {
            BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
            String fileName = bf.readLine();//вводим имя файла


            switch (args[0]) {
                case "-u":
                    changeData(args,fileName);

                case "-d":
                    break;
            }

        }


    }

    public static void changeData(String[] args, String fileName) throws IOException {
        String line;

        FileReader fr = new FileReader(fileName);
        BufferedReader br = new BufferedReader(fr);// считываем имя файла

        ArrayList<String> lines = new ArrayList<>(); создаем список для строк из исходящего файла

        while (!((line=br.readLine())==null)){

             if (getId(line).equals(args[1])){  // если id совпадает меняем данные и закидываем их в Список
                 String s= String.format("%-8s%-30s%-8s%-4s", args[1], args[2], args[3], args[4]);

                lines.add(s);
            }else{
                 lines.add(line);
             }
        }
        br.close();

        for(String line1: lines){
            System.out.println(line1);
        }// Выводим список в консоль. Все хорошо. Изменено.


        BufferedWriter bw = null;// потоки для перезаписи
        FileWriter fw = null;

        for(String line1: lines){
            fw = new FileWriter(fileName, true);
            bw = new BufferedWriter(fw);
            bw.write(line1);

        }// после выполнения программы  файл пустой. ПОЧЕМУ?


    }

    public static String getId(String line){

        String idWithSpaces = line.substring(0, 8);
        return idWithSpaces.trim();
    }




}