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 milieu d'un fichier


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2003
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 54
    Par défaut Ecrire au milieu d'un fichier
    Bonjour, j'aimerais écrire dans un fichier qui contient déjà des données. Sans écraser ce qu'il y a à la suite, je souhaiterais écrire mes données (que j'ai actuellement sous forme d'une string) après le 10eme caractère de mon fichier.
    Note surement utile : je suis en java 1.4
    Je galère un peu entre les FileOutputstream et autres, alors toutes aides est la bienvenue

    Merci d'avance

  2. #2
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 93
    Par défaut
    Y'a une solution simple qui consiste a recopier dans un autre fichiertes premieres lignes, ajouter les nouvelles, ecrire les ligns de fin du premier fichier. Ou alors charger toutes tes lignes en memoire et reecrire ton fichier de A a Z.

    Ce qui est sur c'est que ca marchera, mais on doir pouvoir trouver mieux je pense.

  3. #3
    Membre expérimenté Avatar de fumiste972
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2003
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2003
    Messages : 228
    Par défaut
    Tu as la position proposee par babaôrom mais qui n'est pas tres optimisee...et qui risque de prendre du temps si le fichier est assez gros.
    Sinon tu as normalement la classe FileChannel qui te permet de faire ca.

    Sinon tu recherches sur les fichiers mappes en java et tu devrais trouver

  4. #4
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 93
    Par défaut
    Oui je me disais bien que quelqu'un aurait mieux a proposer

  5. #5
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Mais le fichier mappé n'est pas en lui-même une solution... Sauf si quelque chose m'échappe on ne peut pas plus "insérer" des données dans un fichier mappé que dans un fichier sur le disque dur ?
    Le fichier mappé pourrait accélérer le traitement des gros fichiers (en supposant qu'il y ait assez de RAM...), mais à part ça les méthodes qui pourraient être employées ne sont pas meilleures ou plus aisées à mettre en place que les solutions pour un fichier sur le disque dur :
    • "passer par un fichier intermédiaire" (très simple, pas forcément très rapide, surtout pour une insertion en fin de fichier),
    • "lire l'intégralité du fichier en mémoire (un StringBuffer par exemple (beurk..)) puis écraser celui-ci avec les nouvelles données" (la plus simple et la plus lente),
    • "ouvrir le fichier en lecture-écriture et utiliser un buffer pour recopier la fin du fichier par petit bouts après les données insérées" (probablement la plus rapide avec une taille de buffer adaptée, mais assez lourde à mettre en place).


    --
    Jedaï

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Eventuellement tu as le RandomAccessFile qui peut faire l'affaire

Discussions similaires

  1. ecrire au milieu d'un fichier texte
    Par TheBlackReverand dans le forum C#
    Réponses: 1
    Dernier message: 09/03/2009, 21h37
  2. Ecrire au milieu d'un fichier
    Par remedywu dans le forum Langage
    Réponses: 4
    Dernier message: 21/08/2006, 14h14
  3. Ecrire et lire dans un fichier texte
    Par podz dans le forum C
    Réponses: 3
    Dernier message: 25/10/2005, 16h57
  4. [LG]Ecrire le contenu d'un fichier dans un autre
    Par lucke dans le forum Langage
    Réponses: 10
    Dernier message: 26/04/2003, 20h48
  5. [VB6] Ecrire/Modifier/Effacer ds un fichier text-4 Chs/Lg
    Par Jonathan_Korvitch dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 24/12/2002, 18h54

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