Arbeiten mit dem Dateisystem in Java: Vollständiger 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: Von File bis NIO



Die Arbeit mit dem Dateisystem ist eine der grundlegenden Aufgaben in der Java-Entwicklung. Ob es um das Lesen von Konfigurationen, das Schreiben von Logs oder die Verarbeitung von Benutzerdaten geht, die Fähigkeit, richtig mit Dateien und Verzeichnissen zu interagieren, ist für jeden Java-Entwickler notwendig. In diesem Artikel werden wir die wichtigsten Klassen und Ansätze für die Arbeit mit dem Dateisystem im Detail besprechen, angefangen beim klassischen java.io.File bis hin zum modernen java.nio.file.



Die Klasse File: Grundlagen der Arbeit mit Dateien und Ordnern



Die Klasse java.io.File existiert in Java seit der allerersten Version und bietet grundlegende Möglichkeiten für die Arbeit mit Pfaden, Dateien und Verzeichnissen. Sie liest und schreibt keine Daten direkt, ermöglicht aber die Durchführung von Operationen zur Verwaltung des Dateisystems.



Erstellen eines File-Objekts und Überprüfung der Existenz:

import java.io.File;

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

System.out.println("Datei existiert: " + file.exists()); System.out.println("Ist ein Verzeichnis: " + dir.isDirectory()); }}


Erstellen von Dateien und Verzeichnissen:

File newFile = new File("newFile.txt");if (newFile.createNewFile()) {    System.out.println("Datei erstellt: " + newFile.getName());} else {    System.out.println("Datei existiert bereits");}

File newDir = new File("newDirectory");if (newDir.mkdir()) { System.out.println("Ordner erstellt");}

// Verschachtelte Verzeichnisse erstellenFile nestedDir = new File("parent/child/grandchild");if (nestedDir.mkdirs()) { System.out.println("Verschachtelte Ordner erstellt");}


Informationen über eine Datei abrufen:

File infoFile = new File("example.txt");System.out.println("Absoluter Pfad: " + infoFile.getAbsolutePath());System.out.println("Größe: " + infoFile.length() + " Bytes");System.out.println("Letzte Änderung: " + infoFile.lastModified());System.out.println("Übergeordneter Ordner: " + infoFile.getParent());


Löschen und Umbenennen:

File fileToDelete = new File("temp.txt");if (fileToDelete.delete()) {    System.out.println("Datei gelöscht");}

File oldFile = new File("old.txt");File newFile = new File("new.txt");if (oldFile.renameTo(newFile)) { System.out.println("Datei umbenannt");}


Lesen und Schreiben von Dateien: Klassische Ein-/Ausgabeströme



Für das direkte Lesen und Schreiben von Daten werden Ein-/Ausgabeströme (I/O streams) verwendet. Die wichtigsten Klassen sind: FileInputStream, FileOutputStream für Byte-Daten und FileReader, FileWriter für Textdaten.



Text in eine Datei schreiben mit FileWriter:

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

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


Text aus einer Datei lesen mit FileReader und BufferedReader:

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);

Blogs

Buchempfehlungen