2016-08-11 2 views
0

J'ai créé une interface graphique et j'ai lu dans un fichier TextArea dans l'interface graphique. J'essaie de permettre à l'utilisateur de pouvoir réécrire dans le fichier. J'ai un TextField (pour que l'utilisateur saisisse du texte) et un bouton (auquel je souhaite ajouter une actionListener) de sorte que lorsque du texte est entré dans TextField et que le bouton soit sélectionné, il le réécrit dans le fichier.Classe ActionListener à écrire dans un fichier à partir de TextField et de Button

Ceci est le code que j'ai obtenu jusqu'à présent, mais quand je sélectionne le bouton, il efface ce qui est dans le fichier et le texte (qui a été lu) et était dans le JTextArea est maintenant vide.

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

Qu'est-ce qui vous donne du mal avec ça? – resueman

+1

Bienvenue dans Stack Overflow. Il semble que vous ayez déjà écrit du code. S'il vous plaît poster les parties qui sont liées à votre question. Aussi, quelle est votre question? Quelle partie avez-vous des problèmes avec? Savez-vous comment créer un 'ActionListener'? Savez-vous comment ouvrir un fichier et y écrire? Les deux sont bien documentés et une recherche google aidera. –

+0

La zone de texte est maintenant vide à cause de cette ligne: 'area.setText (" "); ' – FredK

Répondre

0

Lire tout à partir du fichier, puis écrire dans le fichier:

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

J'écris dans un fichier à partir d'un objet TextField et JButton, qui s'afficheront alors dans un TextArea (comme j'ai lu dans le fichier TextArea). Savez-vous comment je le ferais, est-ce que c'est semblable à votre réponse ci-dessus? –

+0

Je suppose que je suis confus ce que vous essayez de faire. Vous avez déjà créé un fichier. Vous voulez écrire à nouveau. L'utilisateur entre du texte dans un objet TextField et, lorsqu'il appuie sur un bouton, il l'écrit/l'ajoute au fichier. C'est ce que vous essayez de faire, n'est-ce pas? – Dominic

+0

oui. Le fichier existe déjà et contient du texte. J'ai déjà lu dans le fichier à une zone de texte. J'ai un champ de texte et un bouton, où l'utilisateur peut écrire dans le fichier et quand ils choisissent le bouton qu'il écrit/ajoute au fichier. –