Salut à tous,
Dans le cadre de mon stage, je dois acceder à des données sur un disque dur.
Il semble que la fonction seek(long) ne me permette pas d'acceder aux données se situant au dela de 2Go!!?
Si quelqu'un a une idée?
Merci à tous!
Version imprimable
Salut à tous,
Dans le cadre de mon stage, je dois acceder à des données sur un disque dur.
Il semble que la fonction seek(long) ne me permette pas d'acceder aux données se situant au dela de 2Go!!?
Si quelqu'un a une idée?
Merci à tous!
Et tu as besoin de lire en java des fichiers de plus de 2 Gos? 8O
Je n'ai pas vérifié ton affirmation, mais si elle est exacte, tu peux toujours utiliser un flux standard (FileInputStream): comme celui-ci lis ton fichier par morceaux via une boucle, je pense que tu n'as aucune limite sur la taille des fichiers par cette méthode.
Regarde également du coté du package java.nio et de la classe FileChannel.
Elle te permet de lire un gros fichier, sans le transferer intégralement en mémoire.
juste une question comme ca , t'as une exception ?
sinon ca peut mettre beaucoup de temps , ramdomAccess file est BEACOUP plus lent que InputStream et ce genre de classe pour la lecture de fichier
si tu as une exception genre java.lang.OutOfMemoryError: Java heap space
la solution de sanguko devrait aller (je ne connais pas nio)
par contre je rejoins l'avis de CyberChouan ... lire des fichier de cette taille n'est pas vraiment fait pour le java ....
pour les temps d'acces j'avais un tableau avec des comparatif de differente classe
apres pour les fichier si gros ca depend de ce que tu en fais mais pour peu que tu en garde une partie en memoire tu va vite deborder le tas ...
nan je suis pas d'accord et dieu sais ce que j'aime le java :p
genre en C tu gere les alloc de memoire donc tu pourras arriver a te debrouiller ... en liste chainees j'ai fais monter l'utilisation de ram a qqgiga ..; en java avant darriver a ca ....