Bonsoir,
dans le cadre d'un projet, je dois utiliser des fichiers.
J'ai un petit soucis avec ma classe de lecture de fichier. Je l'ai implémenté, elle fonctionne sur des petits fichiers... Mais quand je m'attaque à un gros fichier ( 300 Mo), je reçois une méchante exception OutOfMemory...
Voici ma classe :
Je mets tout simplement tout le contenu de mon fichier dans une variable après avoir instanciée ma classe.
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 import java.io.* ; public class LectureFichier { public static String read(String filename) throws IOException { BufferedReader in = new BufferedReader(new FileReader(filename)) ; String s ; StringBuilder sb = new StringBuilder() ; while ((s = in.readLine()) != null){ sb.append(s + "\n") ; } in.close() ; return sb.toString() ; } }
Et voici l'exception :Cela ne peut pas venir de mon PC car avec mon Go de ram libre, ça doit passer...Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
at java.lang.AbstractStringBuilder.append(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at LectureFichier.read(LectureFichier.java:8)
at ProgrammeDeTest.main(ProgrammeDeTest.java:74)
Avez vous une idée ? Une solution ?
Merci par avance.
Cordialement,
Tid.
Partager