probleme de remplissage d'une arraylist
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:
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:
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.