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:
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();
 }
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
 
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)
Votre contribution me serait précieuse.