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

Format d'échange (XML, JSON...) Java Discussion :

Ecraser le contenu d'un fichier XML


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Par défaut Ecraser le contenu d'un fichier XML
    Salut,
    Je viens de découvrire comment connecter Java et XML, pour le moment tout marche bien sauf un petit problème !!

    J'ai une classe qui s'appelle Ecrire, qui écrit des données dans un fichier xml nommé "donnees.xml" .... le problème c'est quand j'appelle cette classe 4 fois par exemple , elle écrit les données 4 fois dans le fichier, comment faire pour que a chaque appelle la classe écrasera le contenu et réecrira de nouveau !!! ?

    et Merci

  2. #2
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Il ne faut pas ouvrir ton fichier en écriture en mode "append".
    Regarde la doc du writer ou outputstream que tu utilises.

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Par défaut
    Merci
    Voici le code de la classe :
    je modifie quoi pour que ça marche !! j'ai cherché mais le problème reste toujours ..j'ai besoin d'aide vraiment

    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
    class Ecrire{
    Ecrire(String fichier)
    {
    Element Resultats = new Element ("Resultats");
    racine.addContent(Resultats);
    Resultats.setText(""+i);
     
    }
    try
    {XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
    sortie.output(document, new FileOutputStream(fichier));
    }
    catch (java.io.IOException e){
    System.exit(0);}
    }
    static Element racine = new Element("Racine");
    static org.jdom.Document document = new Document(racine);
    }

  4. #4
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Essaie de supprimer le fichier avant d'écrire dessus.
    Ca te permettra de savoir si le problème vient de l'output (ce que je ne crois vu que ton code me semble correct) ou si tu gères mal ton document, ce qui pourrait être le cas.

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Par défaut
    est ce que je peux le supprimer en utilisant une commande Java ?

    je crois que le problème vient de l'appel de la classe ?? quand je l'appelle pour la première fois, le contenu du fichier s'écrase, mais quand je l'appelle plusieurs fois, il les supprime que dans le premier appel, après il ajoute ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for(int i=0;i<4;i++){
    new Ecrire(Resultats.xml);
    }
    Merci pour l'aide

  6. #6
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Pour moi ton code est quand même bizarre en fait.

    Tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     static org.jdom.Document document = new Document(racine);
    Le document ne devrait pas être statique, car si tel est le cas tu n'en a qu'un pour tes 4 instances. Donc il ne serait pas étonnant, comme je le supposais dans l'autre message, que tu le modifies lui et donc qu'il soit multiplié par 4 au final.

    Enlève le static et essaie de supprimer le fichier entre 2 écritures (regarde du côté de File#delete()).

  7. #7
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Par défaut
    Merci ça marche maintenant, le problème vient de static

  8. #8
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Merci de cliquer sur le bouton en bas à gauche alors

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

Discussions similaires

  1. [AJAX] Lecture et affichage du contenu d'un fichier xml dans un menu deroulant
    Par undercrash dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/01/2008, 16h26
  2. [JDOM] [Debutant] charger le contenu d'un fichier XMl dans un String
    Par apoca dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 17/10/2007, 18h24
  3. changer le contenu d'un fichier xml.
    Par mun_a dans le forum Général Python
    Réponses: 2
    Dernier message: 24/08/2007, 14h34
  4. [XML] [EXPAT] Mise en memoire d'information contenue dans un fichier XML
    Par websurfeur dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 11/04/2007, 14h16
  5. Lire le contenu d'un fichier xml
    Par Invité dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 10/01/2006, 19h13

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