Dateien in Java mit BufferedReader lesen – Praktischer Leitfaden mit Beispielen
Wie liest man eine Datei in Java?
Java bietet eine Vielzahl von I/O-Klassen für Dateioperationen. Der effizienteste Weg, Textdateien zu lesen, ist über java.io.BufferedReader, der einen Low-Level-Reader umschließt und die Eingabe puffert, um teure Systemaufrufe zu reduzieren.
Was ist BufferedReader in Java?
BufferedReader ist eine Klasse, die Text aus einem Input-Stream (wie einer Datei) liest, indem sie Zeichen puffert. Dies ermöglicht schnelles, zeilenweises oder blockweises Lesen, ohne für jedes Zeichen einen Systemaufruf zu tätigen.
Da Methoden wie read() auf FileReader oder InputStreamReader kostspielig sein können, ist das Einwickeln in einen BufferedReader eine gängige Praxis zur Performance-Verbesserung.
Ein typisches Verwendungsmuster sieht so aus:
BufferedReader reader = new BufferedReader(new FileReader("D:\\DukesDiary.txt"));
Hier wird die Datei geöffnet und für effizientes Lesen gepuffert.
Um den Dateiinhalt anzuzeigen, iterieren Sie durch jede Zeile, bis das Dateiende erreicht ist:
String currentLine;
while ((currentLine = reader.readLine()) != null) {
System.out.println(currentLine);
}
Die Schleife terminiert, wenn readLine() null zurückgibt, was anzeigt, dass das Dateiende erreicht wurde.
BufferedReader-Beispiel (Pre-JDK 7)
Nachfolgend ein vollständiges, produktionsreifes Beispiel, das Best Practices für Resource-Handling demonstriert:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileExample {
public static void main(String[] args) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader("D:\\DukesDiary.txt"));
String currentLine;
while ((currentLine = reader.readLine()) != null) {
System.out.println(currentLine);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
BufferedReader-Beispiel (JDK 7+ mit Try-With-Resources)
Mit Java 7 und höher vereinfacht die Try-With-Resources-Anweisung die Bereinigung. Das folgende Beispiel zeigt dieselbe Logik in prägnanterer Form:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileExampleJDK7 {
private static final String FILENAME = "D:\\DukesDiary.txt";
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader(FILENAME))) {
String currentLine;
while ((currentLine = br.readLine()) != null) {
System.out.println(currentLine);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Die Verwendung von Try-With-Resources schließt den BufferedReader automatisch, was den Code sauberer und weniger fehleranfällig macht.
Java
- Java BufferedReader meistern: Effizientes Character-Stream-Handling
- Java-Dateioperationen mit java.io meistern – Erstellen, Lesen, Schreiben & Löschen
- Java Hello World: Schritt-für-Schritt-Anleitung zu Ihrem ersten Java-Programm
- Java String length() Methode: String-Länge ermitteln (Beispiel)
- Java String.charAt(): Syntax, Rückgabetyp, Exceptions und praktisches Beispiel
- Java String compareTo() meistern: Syntax, Anwendungsfälle und praktische Beispiele
- Java String.contains() Methode: Substrings prüfen – praktische Beispiele
- Java String.endsWith(): String-Suffixe prüfen mit Beispielen
- Insertion Sort Algorithmus in Java: Klares Beispiel & Schritt-für-Schritt-Anleitung
- Selection Sort in Java: Schritt-für-Schritt-Beispiel & Vollständiger Code