Java Reference
In-Depth Information
Abbildung 12.7
Frame des Programms »Kontaktliste«
Die Methode
jBtnEndeActionPerformed
umfasst bisher nur die Anweisung
System.
exit(0)
, um das Programm zu beenden. Vor dieser Anweisung müssen Sie die Ergän-
zungen zum Speichern der Daten einfügen.
12
Das Speichern von Daten auf einem Datenträger bedingt immer einen Zugriff auf Hard-
warekomponenten. Solche Zugriffe können aus vielerlei Gründen Fehler (Exceptions)
auslösen. Datenträger können voll, schreibgeschützt oder auch fehlerhaft sein. Deshalb
sollten Sie bei solchen Zugriffen grundsätzlich eine Reaktion auf Exceptions vorsehen.
Für das Speichern der Textdaten greifen Sie auf zeichenorientierte Streams (
Writer
)
zurück. Da unter Umständen viele Einträge in der Listbox stehen, die in einer Schleife
abgearbeitet werden, wobei viele Schreibvorgänge ausgelöst werden, macht es Sinn,
einen gepufferten Stream einzusetzen. Ein
BufferedWriter
übernimmt das Puffern und
reicht die Daten zum Schreiben an einen
Writer
weiter. Im vorliegenden Fall wollen Sie
in eine Datei schreiben. Deshalb ist hier der
FileWriter
die richtige Wahl. Erweitern Sie
die
import
-Liste um die Einträge
import java.io.BufferedWriter;
import java.io.FileWriter;
Die Kontaktdaten sollen in der Datei mit dem Namen
Kontakte.dat
gespeichert werden.
Die Datei soll im gleichen Ordner gespeichert werden, in dem auch unser Projekt
gespeichert ist. Definieren Sie entsprechend als Eigenschaft des Frames eine Stringvari-
able mit dem Namen
dateiname
, und initialisieren Sie den String mit dem relativen Pfad
zum aktuellen Verzeichnis. Wie Sie vielleicht wissen, können Sie mit dem Bezeichner
Punkt (
.
) auf das aktuelle Verzeichnis verweisen. Dieses aktuelle Verzeichnis entspricht
für ein gestartetes Programm dem Ordner, aus dem die ausführbare Programmdatei
gestartet wurde. Soll die Datei
kontakte.dat
heißen und im gleichen Ordner angelegt