Arbeiten mit dem Dateisystem in Java: Ein praktischer Leitfaden

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit dem Dateisystem in Java: Ein praktischer Leitfaden



Die Arbeit mit dem Dateisystem ist eine der grundlegenden Aufgaben in der Programmierung. In Java gibt es dafür einen leistungsstarken und flexiblen Satz von Werkzeugen, angefangen beim klassischen Paket java.io bis hin zum modernen java.nio.file. In diesem Artikel werden wir anhand praktischer Beispiele erläutern, wie man Dateien erstellt, liest, schreibt und löscht sowie mit Verzeichnissen arbeitet.



1. Die Klasse File: Grundlage der Dateiarbeit



Die Klasse java.io.File ist die grundlegende Klasse zur Darstellung eines Pfades zu einer Datei oder einem Verzeichnis. Sie ermöglicht es, die Existenz zu überprüfen, Objekte des Dateisystems zu erstellen, umzubenennen und zu löschen.



Erstellen und Überprüfen der Existenz einer Datei



import java.io.File;import java.io.IOException;

public class FileExample { public static void main(String[] args) { File file = new File("example.txt");

if (file.exists()) { System.out.println("Datei existiert: " + file.getAbsolutePath()); } else { try { if (file.createNewFile()) { System.out.println("Datei erstellt: " + file.getName()); } } catch (IOException e) { System.err.println("Fehler beim Erstellen der Datei: " + e.getMessage()); } }

// Eigenschaften überprüfen System.out.println("Lesbar: " + file.canRead()); System.out.println("Schreibbar: " + file.canWrite()); System.out.println("Größe: " + file.length() + " Bytes"); }}


Arbeiten mit Verzeichnissen



File dir = new File("my_directory");

if (dir.mkdir()) { System.out.println("Verzeichnis erstellt");}

// Erstellen von verschachtelten VerzeichnissenFile nestedDir = new File("parent/child/grandchild");if (nestedDir.mkdirs()) { System.out.println("Verschachtelte Verzeichnisse erstellt");}

// Abrufen der DateilisteString[] files = dir.list();for (String fileName : files) { System.out.println(fileName);}


2. Lesen und Schreiben von Dateien mit FileReader/FileWriter



Für die Arbeit mit Textdateien eignen sich die Klassen FileReader und FileWriter. Sie arbeiten auf Zeichenebene und unterstützen Zeichenkodierungen.



In eine Datei schreiben



import java.io.FileWriter;import java.io.IOException;

public class WriteExample { public static void main(String[] args) { try (FileWriter writer = new FileWriter("output.txt", true)) { writer.write("Hallo, Welt!"); writer.write("Dies ist die zweite Zeile."); writer.flush(); System.out.println("Daten erfolgreich geschrieben"); } catch (IOException e) { System.err.println("Schreibfehler: " + e.getMessage()); } }}


Beachten Sie: Der zweite Parameter true im Konstruktor von FileWriter aktiviert den Anhängemodus (append). Wenn er weggelassen wird, wird die Datei überschrieben.



Aus einer Datei lesen



import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;

public class ReadExample { public static void main(String[] args) { try (BufferedReader reader = new BufferedReader(new FileReader("output.txt"))) { String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { System.err.println("Lesefehler: " + e.getMessage()); } }}


Die Verwendung von BufferedReader beschleunigt das Lesen großer Dateien durch Pufferung erheblich.



3. Moderner Ansatz: java.nio.file (NIO.2)



Seit Java 7 gibt es das Paket java.nio.file, das bequemere und leistungsfähigere Werkzeuge für die

Blogs

Buchempfehlungen