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();
            }
        }
    }
}

Im Beispiel werden zunächst die Klassen java.io.BufferedWriter, java.io.FileWriter, java.io.IOException und java.io.PrintWriter importiert, um sie bereitzustellen.
In der main()-Methode befindet sich ein try-catch-Block, der dazu dient, IOExceptions der Writer-Klassen abzufangen. Das PrintWriter-Objekt erwartet als Parameter einen OutputStream, der hier durch ein neu gebildetes FileWriter-Objekt gegeben ist1. Dies erzeugt ggfs. die als Parameter-String angegebene Datei falls diese nicht existiert. Der FileWriter wird durch einen BufferedWriter gekapselt. Ohne die Pufferung durch diesen 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. Die Methode flush() gibt den Puffer frei und schreibt ihn in die Datei. Hierbei werden evtl. bereits vorhandene Dateiinhalte gelöscht. Durch Angabe eines zweiten boolean-Parameters bei der Instanzierung des PrintWriter kann der Puffer automatisch geschrieben werden. Ein gesonderter Aufruf von flush() ist dann nicht mehr nötig.

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

Wird dem FileWriter true als zweiter Parameter übergeben, wird die Datei nicht überschrieben und der Text 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.