Arbeiten mit Files
Java bietet umfassende Möglichkeiten, mit Dateien (Files) zu arbeiten.
Dieses kurze Tutorial soll zeigen, wie einfach die grundlegenden Operationen sind.
Elementare File-Funktionen werden durch die Klase java.io.File angeboten.
Datei-Prüfungen: Verzeichnis, Datei oder nicht vorhanden?
Mit Hilfe der Klasse File kann auf Dateien im Dateisystem zugegriffen werden. Als erstes prüfen wir, ob eine Datei bereits existiert und wenn ja, ob es sich um ein Verzeichnis handelt. Das alles ist zum Beispiel dann sinnvoll, wenn eine neue Datei erzeugt werden soll, aber auf keinen Fall eine bestehende Datei mit gleichem Namen überschrieben werden darf, oder eben um zu prüfen, ob bereits ein Verzeichnis mit dem gleichen Namen exisistiert, weil dann ja die Datei nicht erzeugt werden kann. Das folgende code snippet zeigt, wie diese Fragen mit der Klasse File beantwortet werden:
// Prüfen, ob es sich um ein existierendes Verzeichnis handelt:
// Dabei wird (noch) keine Operation auf dem Dateisystem ausgeführt;
// das File-Objekt existiert erstmal nur im Arbeitsspeicher, und tut vorerst nichts:
File file = new File("dateiName.txt");
if (file.isDir()) {
System.out.println("Es handelt sich um ein Verzeichnis.");
} else {
// Prüfen, ob es sich um eine existierende Datei handelt:
if (file.exists()) {
System.out.println("Die Datei existiert bereits.");
} else {
System.out.println("Die Datei existiert nicht.");
}
}
Datei neu anlegen oder Inhalt ans Ende der bestehnden Datei anfügen
Nachdem wir geprüft haben, ob eine Datei existiert, können wir sie ggf neu anlegen. In unserem einfachen Beispiel schreiben wir einfach einen kurzen Text in die Datei. Für den Fall, daß die Datei bereits existiert, hängen wir den Text ans Ende der bestehenden Datei an (file append):
// Prüfen, ob es sich um ein existierendes Verzeichnis handelt:
// Dabei wird (noch) keine Operation auf dem Dateisystem ausgeführt;
// das File-Objekt existiert erstmal nur im Arbeitsspeicher, und tut vorerst nichts:
File file = new File("dateiName.txt");
if (file.isDir()) {
System.out.println("Es handelt sich um ein Verzeichnis.");
} else {
// Prüfen, ob es sich um eine existierende Datei handelt:
if (file.exists()) { // append to file
PrintWriter out = new PrintWriter(new FileWriter(file, true));
out.println("Dieser Text steht am Ende der bereits existierenden Datei.");
out.close();
} else { // create new file
PrintWriter out = new PrintWriter(new FileWriter(file));
out.println("Dieser Text steht in der neuen Datei.");
out.close();
}
}
Inhalt einer Datei auslesen
Ähnlich einfach wie das Anlegen von Dateien und das Schreiben ist auch das Lesen einer Datei. Das nachfolgende Beispiel zeigt, wie der Inhalt einer Datei gelesen wird; zur Einfachheit wird der Inhalt einfach nach stdout geschrieben.Ein Detail am Rande: die Klasse File wird hierfür nicht benötigt. Man würde sie brauchen, wenn man zum Beispiel vor dem Auslesen der Datei prüfen wollte, ob sie überhaupt existiert und auch wirklich ein File (und kein Directory) ist (siehe Beispiel oben).
String currentLine = reader.readLine(); // erste Zeile lesen
while (currentLine != null) { // weitermachen, solange Dateiende nicht erreicht
System.out.println(currentLine); // Inhalt ausgeben
currentLine = reader.readLine(); // folgende Zeile aus file lesen
}
reader.close();
Nach oben, Inhaltsverzeichnis, Impressum |
Admin: Artikel editieren |