Dateizugriffe realisieren

Aus FI-Wiki

Dateizugriffe realisieren

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.