Bonjour
Je voudrais une fonction dans ma classe LireFichier qui lit une ligne donnée.Genre LireLigne i elle va lire la ligne i de mon texte.Merci de m'aider c'est urgent svp.
Version imprimable
Bonjour
Je voudrais une fonction dans ma classe LireFichier qui lit une ligne donnée.Genre LireLigne i elle va lire la ligne i de mon texte.Merci de m'aider c'est urgent svp.
Classe RandomAccessFile => elle contient les méthodes dont tu as besoin.
Le problème ayant déjà été traité, si tu veux une réponse plus complète et/ou un manuel d'utilisation de la classe, tu as le choix entre:
- la FAQ
- la recherche sur le forum
- la recherche sur un moteur de recherche
- l'API de la classe en question
bonjour CyberChouan,
J'ai vu la classe RAF mais readLine lit une ligne mais on peut pas préciser le ligne que je veux lire.
Merci de m'expliquer svp
Question posée 1000 fois sur ce forum.
:recherch: :tutoriel:
Tu ne peux pas faire autrement que de lire toutes les lignes précédent celle recherchée !
J'ai lu iohak,il y a une seule réponse c'est quand ta répondu de créer un fichier d'indexes,or moi il me faut une solution rapide que de créer d'autres fichiers car j'ai affaire à de gros fichiers.sur les autres questions sur le forum ils renvoient juste sur RandomAccessFile mais la classe n'es pas détaillée.
et pour des gros fichiers (de plus de 15 Mo ) je vais pas lire tout le fichier alors que je veux récupérer que la derniére ligne.et comment je fais si je veux récupérer un champ sur une certaine ligne,je suis obligée de lire tout ce qui précéde?La fonction split se fait sur une ligne.et moi je dois comparer les champs de 2 gros fichiers.J'avais fait avec string tokenizer et tableau mais je peux pas car le faite de stocker dans un tableau toutes les données me ralentit bcp mon programme.
Merci bcp pour ton aide.
La gestion des gros fichiers, c'est compliqué.
Il n'y a pas de solutions miracles, en tout cas rien qui tienne en 10 lignes de code, ou en 20 lignes d'explications.
Il y a bien la classe java.nio.channels.FileChannel (avec la methode map()) qui pourrait t'aider, mais il faudrait lire la doc avec attention, ou avoir une experience de la lecture des fichiers en C. Ce qui ne semble pas compatible avec tes delais.
Une derniere remarque, oublie StringTokenizer, garde plutot String.split().
La méthode map de nio ne sera pas forcément intéressante ici. Le temps gagné par le mapping direct risque d'être perdu par les conversions de bytes en string en utilisant le charset adequat. Cette méthode est semble-t-il intéressante sur les gros fichiers dont le contenu est binaire, pas texte.
désolé mais si.Citation:
je vais pas lire tout le fichier alors que je veux récupérer que la derniére ligne
Pour récupérer les lignes, il suffit de boucler sur un readLine qui retourne une ligne entière.