Bonjour,
je souhaite inverser l'ordre des lignes d'un fichiers texte volumineux . (500 mo)
Je ne sais pas comment faire en Java , est ce que vous avez une idée ?
Bonjour,
je souhaite inverser l'ordre des lignes d'un fichiers texte volumineux . (500 mo)
Je ne sais pas comment faire en Java , est ce que vous avez une idée ?
Bonjour,
En java comme dans les autres langages, pour les fichiers, il n'y a pas de miracle.
Il faut ouvrir le fichier, le lire et stocker le contenu dans un flux, et réécrire un nouveau fichier ou écraser le premier.
Quel encodage? Quelle longueur max de lignes? C'est un problème de créer un fichier temporaire pour le travail?
Pour la lecture depuis la fin pendant que tu écrit le nouveau fichier, il faudra passer par un randomaccessfile. L'idéal étant un algorithme du style
Lire N octets à la fin du fichier (genre 1M)
Lire le tableau à l'envers jusqu'à trouver un retour à la ligne, écrire cette partie dans le nouve fichier
recommencer jusqu'à ne plus trouve de fin de ligne dans le tableau
transférer le X octets restant à la fin du tableau
recommencer à lire N-X depuis le fichier
sinon je pourrai résoudre mon problème si je peux a chaque fouis ecrire une ligne en début du fichier au lieu de l'écrire en fin de fichier comme ça le fichier est en bon ordre .. mais je ne sais pas comment faire
on ne peux pas insérer dans des fichiers, on peux juste écrire à la fin ou écraser des données.
Ce que tu peux faire, c'est ecrire dans un nouveau fichier le texte que tu veux puis re-injecter l'ancien. Mais pour un fichier de 500Mo, c'est pas top.
Pourquoi est ce que tu as besoin que les nouvelles lignes soient au debut du fichier ? Generalement, le contraire est plus logique (et en plus, ca t'arrange). Tu ne peux pas plutot partir la dessus ?
Tu veux peut-être juste afficher la dernière ligne au début ? ou bien tu veux réellement inverser le fichier sur le disque dur ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager