Voila, je suis entrain de développer une application qui me parse un fichier Text d'environ 2Mo, ma fonction d'extraction du contenu du fichier texte est réalisé de cette facon :
vous l'aurez compris, je concactène avec mon StringBuffer toutes les lignes trouvées du fichier.
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 public static StringBuffer readFile(String fileName){ StringBuffer recoverTotalLine = new StringBuffer(); try{ File file = new File(fileName); InputStream ips=new FileInputStream(file); InputStreamReader ipsr=new InputStreamReader(ips); BufferedReader br=new BufferedReader(ipsr); String ligne; while ((ligne=br.readLine())!=null){ recoverTotalLine.append(ligne).toString(); } br.close(); } catch (Exception e){ System.out.println(e.toString()); } return recoverTotalLine; }
Tout se passe bien pour les fichiers telques 50/150/350/500 ko mais quand je passe à une taille "classique" de l'ordre de 2mo, ca me dit :"Java heap space"; j'ai dans un premiere temps augmenté l'allocation de mémoire dans éclipse (-Xmx512M) mais rien n'y fait ... .
est ce que qqun aurait une petite idée pour allèger ce code??
il faut savoir aussi que l'extraction du contenu du fichier Text est quasiment instantanné sur des fichiers de 100/150/350 ko... je ne comprend pas :'(
Partager