Forum Clubic

[java] fichier text,buffer

salut

ma situation en version simplifiée:
je passe un fichier source dans un parser jjtree et je fais des modif sur cette source avec l’arbre syntaxique que la parser génère
le problème est que je ne peux pas faire toutes le modif que je veux en même temps, alors je suis obligé de faire ça en plusieurs étapes (le problème n’est surtout pas de vouloir tout faire d’un seul coup)

donc à l’execution ça donne ça :
parse1 modif1 réécriture1
parse2 modif2 réécriture2
etc

ce que je voudais, c’est mettre le contenu de mon fichier dans un buffer dans la memoire, en gros que l’emblacement du fichier soit dans la mémoire,et pas sur le disque, le tps de l’execution
ainsi, je réécris dans un buffer dans la mémoire, et je reparse direct depuis ce buffer

la question est : quelles classes utiliser? input/output

ensuite, je sais pas si ça vaut le coup, par rapport à la taille du fichier …

merci

StringInputStream ou ByteArrayInputStream ne font pas l’affaire?

(ceci dit, fait gaffe aux cas où le fichier est trop gros)

je vais étudier ça…
le sens de ma question, ct de savoir ce qu’il fallait utiliser pour mon cas, il y a pas mal de fonctions our la gestion des flux, et j’ai pas eu trop le tps de me pencher sur tout ça

la taille des fichier sera de 150-200 ko max, je pense, pour le moment
mais c vraique ça pourrait être utilisé pour parser des fichiers de log de 2-3 gig
et là, ça serait un peu limite
ce qui m’amène à une petite question, : il ya une limite de mémoire pour la JVM ?

ByteArrayInputStream devrait convenir (ou l’équivalent dans java.nio)

Sinon, la JVM peut avoir autant de mémoire que le système, suffit de le préciser. Même si c’est pas forcèment au point, ou très bon.

Le mieux c’est éventuellement de faire des mmaps (mettre le fichier en mémoire).