Como ler um grande arquivo de texto linha por linha em Java sem vazamento de memória?
Olá a todos! Sou novo em Java e enfrentei um problema ao ler um grande arquivo de log (cerca de 500 MB). Preciso processar cada linha separadamente, mas quando tento ler o arquivo inteiro de uma vez, o programa trava com OutOfMemoryError.
Aqui está como tentei fazer:
```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();
// processamento da linha
System.out.println(line);
}
scanner.close();
}
}
```
Mas para arquivos grandes isso funciona muito lentamente e consome muita memória. Ouvi falar sobre BufferedReader, mas não entendo como usá-lo corretamente. Diga-me como ler o arquivo linha por linha de forma eficiente, sem carregar tudo na memória de uma vez? De preferência com um exemplo de código.
Tags: java, performance
No answers yet.
Faça login para deixar uma resposta