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 :

Comment ecrire dans un fichier en mise à jour


Sujet :

Entrée/Sortie Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Comment ecrire dans un fichier en mise à jour
    Bonjour,

    J'ai des petits soucis dans mon programme Java, je n'arrive pas à ecrire dans un fichier en misant à jour.
    En effet, mon programme Java crée un fichier pour constituer un envoi de mail.
    Le programme regarde si le fichier existe, s'il n'exite pas je le crée, sinon le programme doit faire des mises à jour dans le fichier ( incrementer les enregistrements ), c'est là ou je peche !
    Help me

    Premier code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    PrintWriter    Outfic    =   new PrintWriter(new BufferedWriter(new FileWriter(ficsortie)),false);
    //    DataOutputStream Outfic = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(ficsortie)));
        email     =  "-to " + quadrn +"@xx.com";
        varbatch  = this.Mailpgm + oespa + this.Mailbody + oespa + this.Mailsubject + oespa + this.Maillibelle + oespa + "-attach " +ficenv ;
        varbatch += oespa + email + oespa + "-cf  " + this.Maillistecp ;
        System.out.println(" varbatch   " + varbatch) ;
        if ( !ficsortie.exists() )
           { 
    //        DataOutputStream Outfic = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(ficsortie)));
            Outfic.println(varbatch);
    //        Outfic.writeBytes(varbatch);
            Outfic.close();   
           }
        else
           {
    //        DataOutputStream Outfic = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(ficsortie)));
            Outfic.println(varbatch);
            Outfic.close();   
           }
    Deuxième code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
      DataOutputStream Outfic = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(ficsortie)));
        email     =  "-to " + quadrn +"@xx.com";
        varbatch  = this.Mailpgm + oespa + this.Mailbody + oespa + this.Mailsubject + oespa + this.Maillibelle + oespa + "-attach " +ficenv ;
        varbatch += oespa + email + oespa + "-cf  " + this.Maillistecp + "\n";
        System.out.println(" varbatch   " + varbatch) ;
        if ( !ficsortie.exists() )
           { 
           Outfic.writeBytes(varbatch);
            Outfic.close();   
           }
        else
           {
            Outfic.writeBytes(varbatch);
            Outfic.close();   
           }

  2. #2
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    Essaie de regarder du côté de RandomAccessFile. Ca à l'air d'être ce que tu cherches.

    Javadoc Sun :
    http://java.sun.com/j2se/1.5.0/docs/...ccessFile.html

    Explication en français :
    http://prevert.upmf-grenoble.fr/Prog...ccessFile.html

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Pourquoi tu mets false dans le constructeur de ton FileWriter ? Avec true cela devrait déjà beaucoup mieux marcher.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PrintWriter    Outfic    =   new PrintWriter(new BufferedWriter(new FileWriter(ficsortie)), true);

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

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    +1 le second paramètre à true signifie que tu ouvres le fichier en écriture en te plaçant à la fin de celui-ci ( mode "APPEND" ). Donc dès le premier write/print tu écris en fin de fichier.
    Pour le RandomAccessFile, il te suffit de faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RandomAccessFile raf=new RandomAccessFile("monFichier",rw);
    raf.seek(raf.length());

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Merci pour votre aide precieuse
    Citation Envoyé par iohack
    +1 le second paramètre à true signifie que tu ouvres le fichier en écriture en te plaçant à la fin de celui-ci ( mode "APPEND" ). Donc dès le premier write/print tu écris en fin de fichier.
    Pour le RandomAccessFile, il te suffit de faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RandomAccessFile raf=new RandomAccessFile("monFichier",rw);
    raf.seek(raf.length());
    J'ai trouvé une parade pour ecrire en muse à jour dans un fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DataOutputStream Outfic = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(fichierout)));
           StringBuffer Contenu    = new StringBuffer();
    Contenu.append(letest);
    Contenu.append("\r\n");
    Et ça marche
    Encore merci pour votre aide.

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

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    ? excuse moi mais je ne vois aucun rapport entre le code que tu cites et le fait d'écrire en fin de fichier ! Dans ton cas tu crées un StringBuffer et tu écris en fin de celui-ci mais en aucun cas dans le fichier dont tu initialises le flux de sortie au dessus. ?

  7. #7
    Membre confirmé Avatar de schniouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 382
    Points : 474
    Points
    474
    Par défaut
    Citation Envoyé par iohack
    ? excuse moi mais je ne vois aucun rapport entre le code que tu cites et le fait d'écrire en fin de fichier ! Dans ton cas tu crées un StringBuffer et tu écris en fin de celui-ci mais en aucun cas dans le fichier dont tu initialises le flux de sortie au dessus. ?
    C'est une feinte, en fait il récupère tout le contenu de son fichier, ajoute son texte à la suite de ce contenu, puis enregistre à nouveau le tout dans le fichier... un peu barbare comme méthode .

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

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    C'est ce que j'imagine. Je lui propose de tester avec un fichier d'1 GO.

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

Discussions similaires

  1. Comment ecrire dans un fichier?
    Par Jarod1980 dans le forum SAP
    Réponses: 3
    Dernier message: 21/06/2007, 11h46
  2. [C#] Comment écrire dans un fichier Excel ?
    Par chorokari dans le forum C#
    Réponses: 8
    Dernier message: 09/02/2007, 09h17
  3. comment ecrire dans un fichier excel
    Par dietrich dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 15/01/2007, 12h46
  4. [VB.Net] Comment écrire dans un fichier texte ?
    Par Toto70 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 12/07/2006, 14h48
  5. [C#] Comment écrire dans un fichier Excel ?
    Par FoxDeltaSierra dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/05/2006, 15h29

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