26. April 2024

Java: Datei zeilenweise einlesen – BufferedReader

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; 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert