Java java.nio.file.Files readAllLines()Methode

Java File Java java.nio.file.Files

readAllLines()Die Methode wird verwendet, um den gesamten Zeileninhalt aus der Datei zu lesen und ihn alsList<String>eine Liste zurückzugeben.

readAllLines()Die Methode hat zwei überladene Versionen:

public static List<String> readAllLines(Path path) throws IOException

public static List<String> readAllLines(Path path, Charset cs) throws IOException

Die erste Version liest die Datei unter Verwendung des Standardzeichensatzes (UTF-8), und die zweite ermöglicht die Angabe eines Zeichensatzes.

Parameterbeschreibung

Path path

  • Typ:java.nio.file.Path
  • Beschreibung: Das Dateipfadobjekt, das gelesen werden soll
  • Beispiel:
    Path filePath = Paths.get("example.txt");

Charset cs(Optionaler Parameter)

  • Typ:java.nio.charset.Charset
  • Beschreibung: Der Zeichensatz, der zum Dekodieren des Dateiinhalts verwendet wird
  • Gängige Zeichensätze:
    • StandardCharsets.UTF_8
    • StandardCharsets.ISO_8859_1
    • StandardCharsets.US_ASCII
  • Beispiel:
    Charset charset = StandardCharsets.UTF_8;

Rückgabewert

  • Typ:List<String>
  • Beschreibung: Eine Liste, die alle Zeilen der Datei enthält; jedes Element repräsentiert eine Zeile in der Datei
  • Hinweis:
    • Zeilentrennzeichen (z. B.,\noder\r\n) ist nicht in der zurückgegebenen Zeichenfolge enthalten
    • Wenn die Datei leer ist, wird eine leere Liste zurückgegeben
    • Die Reihenfolge der Liste entspricht der Reihenfolge der Zeilen in der Datei

Ausnahmebehandlung

readAllLines()Die Methode kann die folgenden Ausnahmen auslösen:

  1. IOException- Wenn ein E/A-Fehler auftritt (z. B. wenn die Datei nicht existiert)
  2. SecurityException- Wenn keine ausreichende Berechtigung für den Zugriff auf die Datei besteht

Es wird empfohlen, Ausnahmen bei der Verwendung zu behandeln:

Beispiel

try {
    List<String> lines = Files.readAllLines(path);
    // den gelesenen Inhalt verarbeiten
} catch (IOException e) {
    e.printStackTrace();
    // Ausnahmen behandeln
}

Anwendungsbeispiele

Beispiel 1: Grundlegende Verwendung

Beispiel

import java.nio.file.*;
import java.util.List;

public class ReadFileExample {
    public static void main(String[] args) {
        Path filePath = Paths.get("example.txt");
       
        try {
            List<String> lines = Files.readAllLines(filePath);
           
            // den Dateiinhalt ausgeben
            for (String line : lines) {
                System.out.println(line);
            }
        } catch (IOException e) {
            System.err.println("Fehler beim Lesen der Datei: " + e.getMessage());
        }
    }
}

Beispiel 2: Festlegen eines Zeichensatzes

Beispiel

import java.nio.file.*;
import java.nio.charset.StandardCharsets;
import java.util.List;

public class ReadFileWithCharset {
    public static void main(String[] args) {
        Path filePath = Paths.get("example.txt");
       
        try {
            List<String> lines = Files.readAllLines(filePath, StandardCharsets.UTF_8);
           
            // Dateiinhalt verarbeiten
            lines.forEach(System.out::println);
        } catch (IOException e) {
            System.err.println("Fehler beim Lesen der Datei: " + e.getMessage());
        }
    }
}

Hinweise

  1. Dateigröße: Diese Methode liest die gesamte Datei auf einmal in den Speicher, nicht geeignet für die Verarbeitung sehr großer Dateien (z. B. Dateien über mehrere hundert MB)
  2. Zeichenkodierung: Stellen Sie sicher, dass der richtige Zeichensatz verwendet wird, andernfalls kann es zu fehlerhaftem Text kommen
  3. : Verschiedene Betriebssysteme verwenden unterschiedliche Zeilenenden (Windows verwendet, Unix/Linux verwendet\r\n), aber\nwird diese Unterschiede korrekt behandelnreadAllLines()Leistungsüberlegungen
  4. : Für große Dateien sollten Sie die Verwendung derMethode für die Streaming-Verarbeitung in Betracht ziehenBufferedReaderundlines()Alternativen

Alternativen

Beispiel

Beispiel

try (Stream<String> stream = Files.lines(path)) {
    stream.forEach(System.out::println);
} catch (IOException e) {
    e.printStackTrace();
}

Zusammenfassung


Zusammenfassung

Files.readAllLines()Andere Erweiterungen

Java File Java java.nio.file.Files

KI denkt nach...