Comment lire un gros fichier texte ligne par ligne en Java sans fuite mémoire ?
Bonjour à tous ! Je suis débutant en Java et j'ai rencontré un problème lors de la lecture d'un gros fichier log (environ 500 Mo). Je dois traiter chaque ligne séparément, mais quand j'essaie de lire tout le fichier d'un coup, le programme plante avec une OutOfMemoryError.
Voici comment j'ai essayé de faire :
```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();
// traitement de la ligne
System.out.println(line);
}
scanner.close();
}
}
```
Mais pour les gros fichiers, cela fonctionne très lentement et consomme beaucoup de mémoire. J'ai entendu parler de BufferedReader, mais je ne comprends pas comment l'utiliser correctement. Dites-moi comment lire efficacement un fichier ligne par ligne sans tout charger en mémoire d'un coup ? De préférence avec un exemple de code.
Tags : java, performance