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

Entrée/Sortie Java Discussion :

Ecrire au début d'un fichier


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Points : 58
    Points
    58
    Par défaut Ecrire au début d'un fichier
    Bonsoir à tous,

    Je souhaiterais savoir s'il est possible d'écrire au début d'un fichier contenant déjà du texte.
    Car j'ai essayer avec un FileOutputStream ou un FileWreater et à chaque fois le fichier est vidé et seul le nouveau texte à ajouter au début du fichier reste.

    Il y a sûrement une meilleure méthode que de mettre dans un String ou StringBuffer le nouveau texte ainsi que le contenu du fichier. Ensuite, on écrit d'abord dans le fichier le nouveau texte puis le texte du fichier. Parce que cette méthode n'est vraiment pas propre surtout si l'on manipule des fichiers volumineux.

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Regarde le RandomAccessFile.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    RandomAccessFile n'est pas adapté à ce cas là, car il ne permet pas d'insérer des données mais seulement de les remplacer...

    Citation Envoyé par Core8
    Il y a sûrement une meilleure méthode que de mettre dans un String ou StringBuffer le nouveau texte ainsi que le contenu du fichier. Ensuite, on écrit d'abord dans le fichier le nouveau texte puis le texte du fichier. Parce que cette méthode n'est vraiment pas propre surtout si l'on manipule des fichiers volumineux.
    Tu es obligé d'utiliser un fichier temporaire. Par exemple si tu veux ajouter une ligne au début du fichier A, tu dois écrire cette ligne dans un fichier temporaire, puis y écrire le contenu de A pour enfin remplacer ce dernier par le fichier temporaire...


    Petite question : pourquoi as-tu besoin d'ajouter au début du fichier ? Il serait bien plus simple d'ajouter à la fin du fichier...

    a++

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Points : 58
    Points
    58
    Par défaut
    Merci de vos réponses

    J'ai essayé ta méthode adiGuba et ça marche (mais c'est dommage que Java n'autorise pas cela sans avoir besoin de créer de fichier temporaire).

    Petite question : pourquoi as-tu besoin d'ajouter au début du fichier ? Il serait bien plus simple d'ajouter à la fin du fichier...
    Pour ta question je suis obligé de le faire dans ce sens à cause des méthodes que j'ai implémenté.

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Core8
    (mais c'est dommage que Java n'autorise pas cela sans avoir besoin de créer de fichier temporaire).
    Cela n'a rien à voir avec Java ! C'est au niveau du système d'exploitation et de la gestion des fichiers que vient cette limitation...

    le "problème" se retrouve avec n'importe quel langage (a moins bien sûr qu'une fonction/méthode crée le fichier temporaire de manière transparente).

    a++

  6. #6
    Membre éclairé
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Points : 756
    Points
    756
    Par défaut
    Citation Envoyé par Core8
    Pour ta question je suis obligé de le faire dans ce sens à cause des méthodes que j'ai implémenté.
    C'est à dire ? Je suis moi aussi curieux de savoir pourquoi l'ajout en début de fichier est primordial et surtout de savoir ce qui empêche tes méthodes d'aller lire à la fin
    "Le calendrier, c'est la bureaucratie du temps." Quino

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Points : 58
    Points
    58
    Par défaut
    Cela n'a rien à voir avec Java ! C'est au niveau du système d'exploitation et de la gestion des fichiers que vient cette limitation...

    le "problème" se retrouve avec n'importe quel langage (a moins bien sûr qu'une fonction/méthode crée le fichier temporaire de manière transparente).
    Ok adiGuba autant pour moi

    Sinon, sironimo depuis ce matin je viens de changer ma façon de le faire. Mon problème était que je traite des images, je dois récupérer l'entête de l'image et coder le contenu (le reste de l'image). Pour cela je codais une copie de l'image sans l'entête et ensuite j'ajoutais l'entête au début de ce fichier.
    Maintenant, j'ai découpé cela en deux, c'est-à-dire que je stocke l'entête dans un fichier et je code le contenu dans un autre fichier (dont j'ai besoin pour le reste de mon appli). Enfin, je mets les deux dans un fichier image pour la visualisation.

    Voilà merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ecrire au début d'un fichier texte
    Par lebigboss dans le forum VB.NET
    Réponses: 4
    Dernier message: 26/03/2010, 09h09
  2. [C#] : Ecrire au début d'un fichier
    Par dcollart dans le forum C#
    Réponses: 2
    Dernier message: 25/09/2007, 15h21
  3. Ecrire au début d'un fichier d'un binaire
    Par cedouche dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 30/07/2007, 15h29
  4. Ecrire au début d'un fichier plat
    Par MayOL69bg dans le forum C#
    Réponses: 1
    Dernier message: 11/07/2007, 12h29
  5. Réponses: 2
    Dernier message: 05/04/2007, 09h39

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