IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Java - inverser les lignes d'un fichier volumineux


Sujet :

Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 11
    Points : 12
    Points
    12
    Par défaut Java - inverser les lignes d'un fichier volumineux
    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 ?

  2. #2
    Membre confirmé
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Points : 586
    Points
    586
    Par défaut
    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.

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    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

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    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

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    on ne peux pas insérer dans des fichiers, on peux juste écrire à la fin ou écraser des données.

  6. #6
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    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 ?

  7. #7
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803
    Par défaut
    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 ?

Discussions similaires

  1. Inverser les lignes d'un fichier csv
    Par azahiri dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 19/10/2012, 17h07
  2. Exercice : inverser les lignes d'un fichier .txt
    Par like i love c dans le forum C
    Réponses: 14
    Dernier message: 07/01/2012, 15h43
  3. Lire les lignes d'un fichier avec csh
    Par nicolas581 dans le forum Linux
    Réponses: 4
    Dernier message: 24/03/2010, 16h38
  4. Afficher les lignes d'un fichier
    Par pepere73 dans le forum C++
    Réponses: 16
    Dernier message: 21/02/2005, 22h25
  5. Réponses: 3
    Dernier message: 26/04/2004, 12h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo