Java Reference
In-Depth Information
Vor dem allerersten Programmstart existiert noch keine Datei mit Kontaktdaten. Des-
halb wird zunächst ein File -Objekt erzeugt; dieses Erzeugen eines Objekts vom Typ
File bedeutet aber noch nicht, dass diese Datei im Dateisystem (d. h. auf der Festplatte)
damit gleichzeitig erzeugt wird. Mit datei.exists() wird geprüft werden, ob die Datei
auf dem Datenträger existiert. Existiert sie nicht, kann sie mit datei.createNewFile()
angelegt werden.
Existiert bereits eine Kontaktdatendatei, wird eine lokale Variable adresszeile vom Typ
String angelegt, in der bei den anschließenden Lesevorgängen jeweils die gelesene Zeile
zwischengespeichert wird. Analog zum BufferedWriter wird hier ein Eingabe-Stream als
BufferedReader verwendet, dem ebenso analog ein FileReader -Objekt mit dem Datei-
namen übergeben wird. Die entsprechenden import -Anweisungen müssen Sie ergänzen:
import java.io.File;
import java.io.BufferedReader;
import java.io.FileReader;
12
Da Sie beim Lesen aus einer Datei nicht wissen, wie viele Einträge in der Datei stehen,
können Sie hier keine for -Schleife wie beim Schreiben wählen. Es wird daher mit einer
while -Schleife so lange aus der Datei gelesen, bis in.readLine() als Ergebnis null liefert.
Dies ist der Fall, sobald das Dateiende erreicht ist. Innerhalb der while -Schleife wird mit
jListKontakteModel.addElement(adresszeile);
der in adresszeile zwischengespeicherte Eintrag in die Listbox übertragen. Nach Ende
der Schleife wird der BufferedReader und damit die Datei wieder mit
in.close();
geschlossen. Die Sicherheitsmechanismen mit try-catch entsprechen denen beim
Schreiben in die Datei.
Mit diesen Erweiterungen haben Sie ein vollwertiges Programm zur Verwaltung von
Kontaktdaten. Die Daten werden dauerhaft gespeichert, und Sie können sie jederzeit
erweitern, ändern und löschen.
Mit den Klassen FilterWriter und FilterReader können Daten beim Schreiben in bzw.
beim Lesen aus Datenströmen gefiltert werden. Ein einfaches Beispiel für die Anwen-
dung eines solchen Filters könnte das verschlüsselte Speichern eines Textes darstellen.
Bei diesem Beispiel geht es nicht darum, eine effektive Verschlüsselung zu verwenden.
Vielmehr soll die Verwendung eines FilterWriter bzw. eines FilterReader demons-
triert werden. Deshalb wird ganz bewusst ein primitives Verschlüsselungsverfahren
verwendet, das mit sehr wenig Quellcode auskommt.
Search WWH ::




Custom Search