Direkt zum Inhalt
Urkunden
Java SchlüsselwörterJava-ArraysJava Objektorientierte ProgrammierungJava File HandlingEinführung in JavaGrundlagen der Java-Sprache

Java Dateien lesen

Das Lesen von Dateien ist eine häufige Aufgabe in der Java-Programmierung, die oft für die Datenverarbeitung und -manipulation notwendig ist. Java bietet mehrere Klassen und Methoden, um Dateien effizient zu lesen, mit Optionen zum Umgang mit Text- und Binärdaten.

Schlüsselklassen für das Lesen von Dateien

  • FileReader: Wird verwendet, um Textdateien auf einfache und effiziente Weise zu lesen.
  • BufferedReader: Umhüllt FileReader, um Text aus einem Zeicheneingabestrom zu lesen, und puffert die Zeichen für ein effizientes Lesen von Zeichen, Arrays und Zeilen.
  • Dateien: Sie ist Teil des Pakets java.nio.file und bietet statische Methoden zum Lesen von Dateien und Verzeichnissen.
  • Scanner: Eine vielseitige Klasse zum Parsen von primitiven Typen und Strings mit regulären Ausdrücken.

Beispiele

Beispiel 1: FileReader und BufferedReader verwenden


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

public class FileReaderExample {
    public static void main(String[] args) {
        try (BufferedReader br = new BufferedReader(new FileReader("example.txt"))) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
    

In diesem Beispiel werden FileReader und BufferedReader verwendet, um eine Textdatei Zeile für Zeile zu lesen. Die Anweisung try-with-resources sorgt dafür, dass die Datei nach dem Lesen geschlossen wird.

Beispiel 2: Klasse Dateien verwenden


import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class FilesExample {
    public static void main(String[] args) {
        try {
            List<String> lines = Files.readAllLines(Paths.get("example.txt"));
            for (String line : lines) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
    

Die Klasse Files bietet eine unkomplizierte Möglichkeit, alle Zeilen einer Datei in eine List einzulesen. Diese Methode ist effizient für kleinere Dateien.

Beispiel 3: Scanner verwenden


import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        try (Scanner scanner = new Scanner(new File("example.txt"))) {
            while (scanner.hasNextLine()) {
                System.out.println(scanner.nextLine());
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}
    

Die Klasse Scanner wird hier verwendet, um eine Datei Zeile für Zeile zu lesen. Sie ist nützlich für das Parsen von Daten mit bestimmten Begrenzungszeichen.

Tipps und bewährte Praktiken

  • Ressourcenmanagement: Verwende try-with-resources, um sicherzustellen, dass Dateistreams automatisch geschlossen werden, damit keine Ressourcen verloren gehen.
  • Behandlung von Ausnahmen: Handle immer mit IOException und FileNotFoundException, wenn du mit Datei-E/A-Operationen arbeitest.
  • Zeichenkodierung: Achte beim Lesen von Dateien auf die Zeichenkodierung. Verwende InputStreamReader mit einem bestimmten Zeichensatz, falls nötig.
    
    new BufferedReader(new InputStreamReader(new FileInputStream("example.txt"), "UTF-8"));
                
  • Dateigröße: Bei großen Dateien solltest du überlegen, ob du sie in Teilen liest oder ob du Memory-Mapping-Dateien verwendest, um Speicherprobleme zu vermeiden.
  • Gleichzeitigkeit: Wenn mehrere Threads dieselbe Datei lesen müssen, solltest du synchronisierte Blöcke oder thread-sichere Klassen verwenden, um den Zugriff zu verwalten.

Java Grundlagen lernen

Baue deine Java-Kenntnisse von Grund auf auf und beherrsche Programmierkonzepte.
Kostenloses Lernen beginnen