Wie man eine große Textdatei zeilenweise in Java liest, ohne Speicherlecks
Hallo zusammen! Ich bin neu in Java und habe ein Problem beim Lesen einer großen Logdatei (ca. 500 MB). Ich muss jede Zeile einzeln verarbeiten, aber wenn ich versuche, die gesamte Datei auf einmal zu lesen, stürzt das Programm mit einem OutOfMemoryError ab.
So habe ich es versucht:
```java
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
File file = new File("bigfile.log");
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
// Zeilenverarbeitung
System.out.println(line);
}
scanner.close();
}
}
```
Aber bei großen Dateien ist das sehr langsam und verbraucht viel Speicher. Ich habe von BufferedReader gehört, verstehe aber nicht, wie man ihn richtig verwendet. Könnt ihr mir sagen, wie man eine Datei effizient zeilenweise liest, ohne alles auf einmal in den Speicher zu laden? Am besten mit einem Codebeispiel.
Tags: java, performance
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Profilierung von Rust-Code in der Praxis: Engpässe finden
Enterprise Rust: Überleben und Gedeihen in großen Projekten
Entwurfsmuster in TypeScript: Fortgeschrittenes Niveau mit Beispielen
Kotlin in der Systemprogrammierung: Ein neuer Blick auf Low-Level-Code