Bonjour
jaimerais acceder a un fichier et chercher un numero specifier mais rapidement
apres plusieur recherche j'ai eu CETTE information mmaped file and NIO
jaimerais avoir des information et la methode d utilisation
Merci
Version imprimable
Bonjour
jaimerais acceder a un fichier et chercher un numero specifier mais rapidement
apres plusieur recherche j'ai eu CETTE information mmaped file and NIO
jaimerais avoir des information et la methode d utilisation
Merci
pourrais-tu etre plus précis? Pour lire un fichier, le plus simple est d'utiliser soit un FileInputstream, soit un RandomFile. Les NIO et les fichiers mappé, c'est plus compliqués à utiliser (mais plus performant aussi). T'as des messages d'erreur? Quel est ton code?
Bonjour
j utilise RandomFile avec une command while pour faire la recherche dans le fichier mais c est trop lent....j aimerais utilise Les NIO et les fichiers mappé
comment faire ?
voici le code
Code:
1
2
3
4
5
6
7
8
9
10 while ((line = br.readLine()) != null) { if ( line.indexOf(phrase) != -1) { System.out.println("phrase trouver..."); } }
merci
Si ton but est de parcourir tout le fichier dans l'ordre pour trouver ta phrase, les fichiers mappés ne te sont d'aucune utilité. Les fichiers mappé permettent de présenter le contenu du fichier dans une zone mémoire, comme si il s'agissait de données en mémoire vive, et de les manipuler (lecture / écriture) sans avoir à gerer les pointeurs de position. Tu trouvera des détails sur les nio ici: http://gfx.developpez.com/tutoriel/java/nio/
Bonjour
Merci bcp pour votre aide , exactement j aimerais parcourir le fichier rapidement et non sequentiellement exemple:
je recois 5 demande de recherche a la fois et jaimerais que je les traites en parallele et non une apres l autre
Merci bcp
même si tes recherches se font en //, ca reste séquentiel, sauf si t'as un moyen qui te permet, à partir de ce qui est recherché, de jumper à un endroit particulier du fichier où tu sais déjà à l'avance que ça se trouve :)
Bonjour
merci pour votre reponse , voila un apercu ce que je veux :
je recois des demandes genre 1,2,3,4
si mon fichier contient :
1|ab|14h30
2|aU|00h30
3|Gb|05h30
la recherche ce fait par la demande , c'a dire 1 ou 2 ou 3 ou 4
pour obtenir la ligne correspondante
donc c'est sequentiel , je veux faire une recherche direct
est ce que c est possible
merci
possible oui, facile non :)
Si tes lignes, dans le fichier, son triées, tu peux utiliser une recherche dicotomique:
1) tu te place au milieu du fichier
2) tu "bouge un petit peu" pour atteindre un début de ligne
3) tu lit la ligne
4) tu compare
5) tu jumpe au milieu de ce qui reste devant ou derrière suivant le cas et tu recommence en 2)
Avec des fichiers mappé, ce genre d'opération peut être payante. Mais bien sur, il faut que le fichier soit trié et que le critère de recherche soit dans le fichier :) (on peux pas atteindre le 12371ième ligne comme çà, par contre on peut l'utiliser pour atteindre la ligne commencant par "12371|"
Bonjour
Merci pour votre aide mais j'ai bien compris :)
Merci