Lecture d'un gros fichier texte [java] - Java - Programmation
Marsh Posté le 02-06-2009 à 20:20:48
ça serait pas mal si tu pouvais nos montrer ton code (ou au moins un extrait d'une partie représentative).
Si c'est effectivement la compilation (et pas l'exécution du programme) qui dure + de 30 min, le problème ne devrait pas venir de la taille de ton fichier (dictionnaire) mais soit de ton code, soit de ton ide, soit de l'ordi que tu utilise pour compiler ton programme.
Mais bon, ton code serait le bienvenu pour mieux diagnostiquer ton pb.
Marsh Posté le 02-06-2009 à 21:30:36
Alors voila mon code:
La fonction de lecture:
Code :
|
Et Eclipse me sort un out of memory...
Marsh Posté le 03-06-2009 à 08:15:09
T0ots a écrit :
|
Ca règle peut-être pas le problème mais tu n'enregistres qu'une ligne sur 2 car ton readLine de ta condition récupère la ligne dans le vide.
Et en plus ça pourrait planter car fich.readLine pourrait être nul dans le while.
Marsh Posté le 03-06-2009 à 08:46:12
Il y a un truc que je comprend pas.. Pourquoi tu fais tout ce traitement si de toutes façons tu retournes fich.toString() et que donc "dico" n'est jamais utilisé ?
Marsh Posté le 03-06-2009 à 09:48:06
1) Utilise plutôt un BufferedReader avec un FileReader à la place d'un RandomAccessFile.
2) Un peu de lecture sur le flux en Java: http://java.sun.com/docs/books/tutorial/essential/io/charstreams.html
3) Initialise ton StringBuffer avec une grosse taille (new StringBuffer(10*1024)), ça améliora les perfs
4) Tu peut utilise CommonsIO, avec les méthodes de FileUtils pour lire un fichier texte
Marsh Posté le 02-06-2009 à 19:13:59
Bonjour,
Je suis en train de tenter de stocker dans un tableau un dictionnaire qui provient d'un fichier texte. Seulement, après 30 min de compilation toujours rien... Je vais devoir en plus appliquer d'autres traitements à ce dictionnaire, donc il faut vraiment que je trouve une solution pour obtenir une lecture rapide. Le fichier texte ne fait que 24 Mo.
J'utilise pour le moment BufferedReader, mais pas moyen d'en ressortir quoi que ce soit.
D'autre part, je me demande si le problème ne vient pas d'Eclipse...Ou de la mémoire dédiée à la JVM.
Si quelqu'un a une idée, je suis preneuse.
Merci d'avance!