Möchte man Textdateien in Programmen verwenden, so bietet es sich häufig an, diese zeilenweise auszulesen. Die Java Bibliothek stellt daher für diesen Anwendungsfall den BufferedReader bereit.
Lernen Sie hier anhand eines Beispielcodes, wie man den BufferedReader verwendet.
BufferedReader bufferedReader = null;
//Der Pfad zur Textdatei
String filePath ="C:/beispiel.txt";
File file = new File(filePath);
try {
//Der BufferedReader erwartet einen FileReader.
//Diesen kann man im Konstruktoraufruf erzeugen.
bufferedReader = new BufferedReader(new FileReader(file));
String line;
//null wird bei EOF oder Fehler zurueckgegeben
while (null != (line = bufferedReader.readLine())) {
//Zeile auf der Konsole ausgeben
System.out.println(line);
//Hier kann Ihr Code stehen ...
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (null != bufferedReader) {
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Der gezeigte Code gibt die Datei „C:/beispiel.txt“ zeilenweise auf der Konsole aus.
Mit bufferedReader.readLine()
wird jeweils eine Zeile der Datei ausgelesen und als String zurückgegeben. null
wird beim Dateiende (EOF) oder einem Fehler zurückgegeben.
Die Hauptschwierigkeit bei der Verwendung des BufferedReader besteht darin, die I/O-Exceptions richtig abzufangen. Diese sind bei der Verwendung von Dateien leider nicht zu vermeiden und immer zu berücksichtigen.
Mit bufferedReader.close()
wird der bufferedReader wieder geschlossen. Hierbei ist darauf zu achten, dass dies in jedem Fall geschehen muss (finally
), insbesondere wenn Exceptions aufgetreten sind. Außerdem kann es auch sein, dass der bufferedReader überhaupt nicht instanziiert wurde, deshalb erfolgt vorher eine Prüfung auf null.
Nicht zu vergessen, die benötigten Imports aus der Java Bibliothek:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;