Java java.nio.file.Files readAllLines()Methode
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_8StandardCharsets.ISO_8859_1StandardCharsets.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
- Zeilentrennzeichen (z. B.,
Ausnahmebehandlung
readAllLines()Die Methode kann die folgenden Ausnahmen auslösen:
IOException- Wenn ein E/A-Fehler auftritt (z. B. wenn die Datei nicht existiert)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
}
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());
}
}
}
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());
}
}
}
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
- 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)
- Zeichenkodierung: Stellen Sie sicher, dass der richtige Zeichensatz verwendet wird, andernfalls kann es zu fehlerhaftem Text kommen
- : Verschiedene Betriebssysteme verwenden unterschiedliche Zeilenenden (Windows verwendet, Unix/Linux verwendet
\r\n), aber\nwird diese Unterschiede korrekt behandelnreadAllLines()Leistungsüberlegungen - : Für große Dateien sollten Sie die Verwendung derMethode für die Streaming-Verarbeitung in Betracht ziehen
BufferedReaderundlines()Alternativen
Alternativen
Beispiel
Beispiel
try (Stream<String> stream = Files.lines(path)) {
stream.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
stream.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
Zusammenfassung
Zusammenfassung
Files.readAllLines()Andere Erweiterungen
Java java.nio.file.Files