Wie kann man in eine Textdatei schreiben?

Die Klasse PrintWriter stellt Methoden bereit, mit denen in eine Textdatei geschrieben werden kann.
Sie ist eine von sieben Klassen, die sich von der abstrakten Klasse Writer ableiten.

package dateienUndVerzeichnisse;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class DateiSchreibenClass {
    public static void main(String[] args) {
        PrintWriter pWriter = null;
        try {
            pWriter = new PrintWriter(new BufferedWriter(new FileWriter("test.txt")));
            pWriter.println("Hallo Welt!");
        } catch (IOException ioe) {
            ioe.printStackTrace();
        } finally {
            if (pWriter != null){
                pWriter.flush();
                pWriter.close();
            }
        }
    }
}

In der main()-Methode des Beispiels befindet sich ein try-catch-Block, der dazu dient, eventuelle Fehler bei Ausführung der kaskadierten Datenströme abzufangen. Das PrintWriter-Objekt erwartet als Parameter einen OutputStream, der hier durch ein neu gebildetes FileWriter-Objekt gegeben ist1. Abhängig von der zugrunde liegenden Platform erzeugt er ggfs. die als Parameter-String angegebene Datei, falls diese nicht bereits existieren sollte. Der FileWriter wird durch einen BufferedWriter gekapselt. Ohne diese Pufferung würde jeder Aufruf der Methode print() die Konvertierung eines Zeichens in ein byte verlangen - eine kostspielige Angelegenheit!

Die Methode println() schreibt schließlich den übergebenen String zunächst in einen internen Puffer, der durch flush() freigegeben wird und den Inhalt in die Datei schreibt. Hierbei werden evtl. bereits vorhandene Dateiinhalte gelöscht. Durch Übergabe eines zweiten boolean-Parameters an den Konstruktor des PrintWriter kann der Puffer bei Aufruf der Methoden printf(), println oder format() automatisch geschrieben werden. Ein gesonderter Aufruf von flush() ist dann nicht mehr nötig.

PrintWriter pWriter = new PrintWriter(new FileWriter("test.txt"), true);

Wird bei der Objektbildung true als zweiter Parameter an den Konstruktor des FileWriters übergeben, wird die Ausgabedatei nicht überschrieben, sondern der Text am Ende angehängt:

PrintWriter pWriter = new PrintWriter(new FileWriter("test.txt", true), true);

1) In Java 1.5 kann dem PrintWriter der Dateinamens-String direkt übergeben werden, statt ein File-Objekt zu verwenden.