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 :

Ajouter une ligne en fin de fichier sans écraser le fichier


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Par défaut Ajouter une ligne en fin de fichier sans écraser le fichier
    Bonjour,

    est-ce que quelqu'un pourrait m'indiquer comment insérer une ligne en fin de fichier sans écraser ce qu'il y avait dans ce fichier.
    J'ai essayé des tas de trucs mais dsoit ce qui était avant disparaissait, soit ça n'écrivait rien.

    Merci

  2. #2
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Par défaut
    Citation Envoyé par afrikha
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    byte buffer[] = new byte[60];
    int bytes = System.in.read(buffer);
    FileOutputStream fos = new FileOutputStream("fichier.txt", true);
    fos.write(buffer, 0, bytes);
    Comment faire pour donner directement le mot qu'il faut ajouter sans passer par la lecture de ce mot a l'ecran

  4. #4
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Ben il suffit de transformer le mot que tu veux écrire en un tableau de byte puis tu passes ce tableau comme paramètre à la méthode write de FileOutputStream.
    ça donne un code qui ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    FileOutputStream fos=null
    String mot="chaine à insérer à la fin du fichier";
    try{
         fos=new FileOutputStream("fichier.txt", true);
         byte[] tab=mot.getBytes();
         fos.write(tab);
    }catch(IOException ex){
        ex.printStackTrace();
    }finally{
      if(fos!=null){
         fos.close();
      }
    }
    Voilà, j'espère que c'est assez clair.

    @+


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  5. #5
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Tout cela ne me plait pas trop. En général, pour écrire/lire du texte dans les fichiers, faut passer par les reader/writer ( encodage toussa ).

  6. #6
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Citation Envoyé par iohack
    Tout cela ne me plait pas trop. En général, pour écrire/lire du texte dans les fichiers, faut passer par les reader/writer ( encodage toussa ).
    Tu as raison
    D'autant plus que la classe FileWriter possède un constructeur dont un des paramètres indique si oui ou non il faut ajouter le texte à celui déjà existant.

    Je rectifie donc mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    FileWriter fw=null
    String mot="chaine à insérer à la fin du fichier";
    try{
         fw=new FileWriter("fichier.txt", true);
         fw.write(mot,0,mot.length());
    }catch(IOException ex){
        ex.printStackTrace();
    }finally{
      if(fw!=null){
         fw.close();
      }
    }
    Pour rappel : il faut utiliser les flux binaires pour les données binaires (images,...) et les flux de caractères pour lire/écrire du texte.

    @+


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

Discussions similaires

  1. ajouter une ligne à la fin de la feuille
    Par ghosty04 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/11/2008, 15h28
  2. [Dataset] Ajout d'une ligne à la fin d'un dataset
    Par joeln3 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/07/2007, 13h37
  3. Copier une ligne à la fin d'un fichier en respectant les espacements
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 15/06/2007, 09h53
  4. [vb.net] ajouter une ligne à un fichier txt existant
    Par tbdarkspirit dans le forum VB.NET
    Réponses: 2
    Dernier message: 25/05/2007, 11h41
  5. Ajouter une ligne à la fin d'un classeur excel
    Par maketossss dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/11/2005, 09h38

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