Запись данных в файл по клику на JButton - Java GUI

У меня есть кнопка:

    private JButton WyborProgramu = new JButton("Wybor programu");

По клику на которую должна сработать функция wyborprogramu

        WyborProgramu.addActionListener(new wyborprogramu ());

Код функции:

class wyborprogramu implements ActionListener {
        public void actionPerformed (ActionEvent ee) {
        BufferedReader br = null;
        Panel panel = new Panel();
        panel.setLayout(new FlowLayout());
        try {
            File file = new File("history.txt");
            if(!file.exists())
                file.createNewFile();
            PrintWriter pw = new PrintWriter(file);
            pw.println("Button - wybor programu");
            br = new BufferedReader(new FileReader("ListaProgramow.txt"));
            String line;
            while((line = br.readLine()) != null) {
                JButton program = new JButton(line);
                panel.add(program);
                program.addActionListener(new program ());
            }
            JOptionPane.showMessageDialog(null, panel, "Lista programow", JOptionPane.PLAIN_MESSAGE);
        }
        catch(IOException e) {
            System.out.println("Error: " + e);
        }
        finally {
            try { br.close(); }
            catch(IOException e) { System.out.println("Error: " + e); }
            }
        
        }
    }

В строчках

File file = new File("history.txt");
            if(!file.exists())
                file.createNewFile();
            PrintWriter pw = new PrintWriter(file);
            pw.println("Button - wybor programu");

я хочу что бы по клику на кнопку создался файл и записалась строчка "Button - wybor programu" в него, в итоге
файл создается но пустой, в чем проблема может быть?


Ответы (1 шт):

Автор решения: Roman C

После того, как вы закончили писать в PrintWriter, его надо закрыть, иначе содержимое буфера будет удалено.

try (PrintWriter pw = new PrintWriter(file)) {
            pw.println("Button - wybor programu");
}
→ Ссылка