Daten zeilenweise in eine Textdatei schreiben.

Kestrel

Mitglied
Servus liebe User,

Ich komme mal wieder mit einer dummen Frage um die Ecke...

ich habe ein GUI mit mehreren Textfeldern und einem Button. Nun möchte ich durch Knopfdruck die Informationen in den Textfelder einfach hintereinander weg in eine Zeile einer Textdatei schreiben.

An sich keine große Sache aber wie bewerkstellige ich es, nach erneutem Knopfdruck Daten in eine neue Zeile geschrieben werden?

Hier mal mein Code für die action:

Code:
fButtonActionPerformed(java.awt.event.ActionEvent evt) {

PrintWriter pw = null;
        try {
            Writer bw = new BufferedWriter( new FileWriter( "d:/Test/Test.txt"));
            pw = new PrintWriter( bw );
            
            pw.println(fTextField1.getText()+" "+fTextField2.getText()+" "+
                fTextArea1.getText()+" "+fTextArea2.getText()+" "+
                fTextField3.getText()+" ");
        } catch ( IOException e ){
            System.out.println( "Konnte Datei nicht erstellen" );
        } finally {
            if ( pw != null )
                pw.close();
        }

Ich sehe leider den Wald vor lauter Bäumen nicht mehr und hoffe, dass mir Jemand einen Tipp geben kann.

In diesem Sinne...

Gruß Kestrel
 
Habe mal nen Beispielprogramm geschrieben. Schau es dir an. Hoffe ich beantworte damit deine Frage.

PHP:
package de.tutorials;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;

/**
 * @author Viktor Koop
 */

public class TextApp extends JFrame implements ActionListener {

	public static void main(String[] args) {
		new TextApp();
	}
	private JTextArea textArea;
	private JButton okButton;

	private File destination = new File("example.txt");

	public TextApp() {
		textArea = new JTextArea();
		okButton = new JButton("Append");

		okButton.setActionCommand("OK");
		okButton.addActionListener(this);

		getContentPane().add(textArea);
		getContentPane().add(okButton, BorderLayout.SOUTH);

		setSize(300, 500);
		setVisible(true);
	}

	public void actionPerformed(ActionEvent e) {
		try {
			if (e.getActionCommand().equals("OK")) {
				String text = this.textArea.getText();
				FileWriter fw = new FileWriter(destination, true);
				BufferedWriter ausgabe = new BufferedWriter(fw);
				ausgabe.write(text);
				ausgabe.newLine();
				ausgabe.close();
			}
		} catch (IOException e1) {
			// TODO
		}
	}

}
 
Danke für die schnellen und zahlreichen Tipps :D

hab jetzt meinen geposteten Code den Konstruktor das append mitgegeben und das klappt auch sehr gut. Was jetzt nur noch nicht klappt, ist dass bei erneutem Knopfdruck in die nächste Zeile der Datei geschrieben wird.

So sollte das Ergebniss in der Datei dann aussehen:

//nach dem ersten Knopfdruck
Hans Maulwurf Idstein 65510
//neue Daten in die Textfelder eingeben und erneuter Knopfdruck
Hans Maulwurf Idstein 65510
Max Mustermann Frankfurt 60311

usw.
 
Hi,

Bei erneutem Knopfdruck sollen die neu eingegebenen Daten in die nächste Zeile der Textdatei geschrieben werden...

war das so schlecht erklärt grade? :confused:
 
Ich hab verstanden was du geschrieben hast, aber du sagtest nur "es funktioniert net".
Schreibt er gar nichts, oder ueberschreibt er die alten Werte, das wollte ich wissen.
 
>.< sry mein fehler...

er schreibt die neuen Daten einfach hinter die alten, in der selben reihe quasi so

Hans Maulwurf Idstein 65510 Max Mustermann Frankfurt 60311
 
Eigentlich habe ich die Frage schon mit meinem Code-Schnipsel beantwortet.

Schau mal in der actionPerformed Methode. Wenn du einen BufferedWriter verwendest, rufst du jedesmal, nachdem du etwas geschrieben hast, die Methode newLine(). Dadurch, wirds es beim nächsten Schreiben in der nächsten Zeile sein.
 

Neue Beiträge

Zurück