bonjour
j'ai un probleme lors du remplissage de ma arraylist depuis un gros fichier (4000000 lignes) quand j'ateint environ 2300000 lignes sa plante
donc voici mon code:
et voici ce que dit le compilateur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 public void lireLesDonnees(ArrayList<String> listeDonnees){ // Ouvrir le fichier en lecture this.ouvrirEnLecture("kddcup"); String chaine =""; // tant que ... do { try { // Lire la ligne courante et la retourner au programme appelant //chaine=fR.readLine(); if ((chaine=fR.readLine()) != null){ /// Ajouter la chaine à liste des donnees de type ArrayList listeDonnees.add(chaine); System.out.println(listeDonnees.size()); } } // Si une erreur est détéctée (le fichier n'est pas ouvert en lecture, ...) catch (IOException err) { // afficher le message d'erreur System.out.println("Donnees.txt"+" : Erreur de lecture ");} // ... la chaine lue n'est pas null (fin de fichier) } while (chaine != null); fermer(); }
Votre contribution me serait précieuse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded at java.util.Arrays.copyOfRange(Arrays.java:3664) at java.lang.String.<init>(String.java:207) at java.io.BufferedReader.readLine(BufferedReader.java:356) at java.io.BufferedReader.readLine(BufferedReader.java:389) at projet.Fichier.lireLesDonnees(Fichier.java:89) at projet.test.main(test.java:11)
Partager