Dateizugriffe realisieren

Aus FI-Wiki

Beim Arbeiten mit Dateien geht es darum, Daten aus Dateien zu lesen, in Dateien zu schreiben oder Dateien zu erstellen, löschen oder verändern. In Java erfolgt dies über die Ein- und Ausgabe-API (I/O), die sowohl Byte- als auch Zeichenströme unterstützt.

Dateien lesen (Input)

Textdateien zeilenweise lesen

BufferedReader reader = new BufferedReader(new FileReader("daten.txt"));
String zeile;

while ((zeile = reader.readLine()) != null) {
    System.out.println(zeile);
}

reader.close();

Ganze Datei als Bytes lesen

FileInputStream input = new FileInputStream("bild.jpg");
byte[] daten = input.readAllBytes();
input.close();

Dateien schreiben (Output)

Text in Datei schreiben

BufferedWriter writer = new BufferedWriter(new FileWriter("ausgabe.txt"));
writer.write("Hallo Welt!");
writer.newLine();
writer.write("Weitere Zeile");
writer.close();

Binärdaten schreiben

FileOutputStream out = new FileOutputStream("kopie.jpg");
out.write(daten);   // 'daten' ist ein Byte-Array
out.close();

Dateien verwalten

Existenz prüfen

File f = new File("test.txt");
if (f.exists()) {
    System.out.println("Datei existiert");
}

Datei löschen

f.delete();

Ordner anlegen

new File("neuerOrdner").mkdir();

Dateien und Ordner auflisten

File ordner = new File(".");
for (File file : ordner.listFiles()) {
    System.out.println(file.getName());
}

Wichtige Klassen für Dateizugriffe

  • File – Repräsentation von Dateien und Ordnern
  • FileReader / FileWriter – Lesen/Schreiben von Text
  • FileInputStream / FileOutputStream – Lesen/Schreiben von Bytes
  • BufferedReader / BufferedWriter – effizientes Lesen/Schreiben
  • Files (NIO) – moderne Dateioperationen

Moderne Dateioperationen mit NIO (ab Java 7)

import java.nio.file.*;

Files.writeString(Path.of("test.txt"), "Hallo!");
String inhalt = Files.readString(Path.of("test.txt"));
System.out.println(inhalt);

Kurzmerksatz

Dateizugriffe ermöglichen das Lesen, Schreiben und Verwalten von Dateien – in Java mit Streams, File-Klassen und der modernen NIO-API.