2016-08-11 15 views
0

Я создал графический интерфейс и прочитал в текстовом файле TextArea в графическом интерфейсе.Класс ActionListener для записи в файл из TextField и кнопки

Я пытаюсь разрешить пользователю писать обратно в файл. У меня есть TextField (для ввода текста пользователем) и кнопка (к которой я хочу добавить actionListener), чтобы при вводе текста в TextField и выбранной кнопке он записывал его обратно в файл.

Это код, который у меня есть до сих пор, но когда я выбираю кнопку, он очищает то, что находится в файле, и текст (который был прочитан) и был в JTextArea, теперь пуст.

class WriteToFile implements ActionListener { 
     public void actionPerformed(ActionEvent e) 
       { 
        try 
        { 
         FileWriter writer = new FileWriter("File.txt"); 
         BufferedWriter bw = new BufferedWriter(writer); 
         txtSearch1.write(bw); 
         bw.close(); 
         area.setText(""); 
         area.requestFocus(); 
        } 
        catch(Exception e2) {} 
       } 

    } 
+2

Что дает вам проблемы с этим? – resueman

+1

Добро пожаловать в переполнение стека. Похоже, вы уже написали какой-то код. Пожалуйста, разместите части, относящиеся к вашему вопросу. Также, каков ваш вопрос? С какой частью у вас проблемы? Вы знаете, как создать «ActionListener»? Вы знаете, как открыть файл и написать ему? Оба эти документа хорошо документированы, и поиск в Google поможет. –

+0

Текстовая область теперь пуста из-за этой строки: 'area.setText (" "); ' – FredK

ответ

0

Читать все из файла, а затем записать в файл:

File file = new File("TestFileWriter.txt"); 
    StringBuilder fileText = new StringBuilder(); 
    // Read the file first, then write to it 
    try (BufferedReader br = new BufferedReader(new FileReader(file))) { 
     String line; 

     while((line = br.readLine()) != null) { 
      fileText.append(line); 
      fileText.append(System.lineSeparator()); 
     } 
    } 

    try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) { 
     bw.write(fileText.toString()); 
     bw.write("New text to add on the next line"); 
    } 
+0

Я пишу в файл из TextField и JButton, который затем будет показан в TextArea (как я прочитал в файле TextArea). Знаете ли вы, как я это сделаю, похоже ли это на ваш ответ? –

+0

Я полагаю, я смущен тем, что вы пытаетесь сделать. У вас уже создан файл. Вы хотите написать еще раз. Пользователь вводит текст в TextField, а когда он нажимает кнопку, он записывает/присоединяет его к файлу. Это то, что вы пытаетесь сделать, верно? – Dominic

+0

есть. Файл уже существует и содержит текст. Я уже прочитал в файле текстовую область. У меня есть текстовое поле и кнопка, где пользователь может писать в файл, и когда они выбирают кнопку, она записывает/присоединяется к файлу. –