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 :

Ecrire dans un fichier XML sans écraser


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut Ecrire dans un fichier XML sans écraser
    Bonjour,
    J'aimerais savoir comment ajouter plusieurs données dans un fichier xml sans écraser le contenu.J'ai essayé d'ajouter "true" en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XMLEncoder enc = new XMLEncoder(new FileOutputStream("fichier.xml",true));
    Mais quand j'ouvre le fichier xml,j'ai l'erreur suivante:

    La page XML ne peut pas être affichée
    Impossible d'afficher l'entrée XML en utilisant la feuille de style XSL. Corrigez l'erreur, puis cliquez sur le bouton Actualiser ou réessayez ultérieurement.


    --------------------------------------------------------------------------------

    Un seul élément de niveau supérieur est autorisé dans un document XML. Erreur de traitement de la ressource file:///D:/work...

    <java version="1.6.0_17" class="java.beans.XMLDecoder">
    -^

    Je ne sais pas comment faire.Sinon voici 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
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    public void actionPerformed(ActionEvent ev) {
     
     
    		if(ev.getSource().equals(boutonOk)){
    			Etudiant etud=new Etudiant();
     
    		int		id = Integer.parseInt(jtNum.getText());				
    			try {
     
    				etud.setNum(id);			
    				etud.setNom(jtNom.getText());
    				etud.setPrenom(jtPrenom.getText());
     
     
    				XMLEncoder enc = new XMLEncoder(new FileOutputStream("fichier.xml",true));
    				enc.writeObject(etud);
    				enc.flush();
    				enc.close();
     
    				   JOptionPane.showMessageDialog(null,"Sauvegarde réussie!");
    				   jtNum.setText(null);
    				   jtNom.setText(null);
    				   jtPrenom.setText(null);
    			} catch (Exception e) {
     
    				 JOptionPane.showMessageDialog(null,"Sauvegarde non réussie!");
    			}
    		}
     
    		if(ev.getSource().equals(boutonAfficher)){
     
     
     
    			try {
     
     
    				XMLDecoder dec = new XMLDecoder(new FileInputStream("fichier.xml"));
     
    			    Etudiant etud= (Etudiant)dec.readObject();
    			    dec.close();
     
     
    				String a = Integer.toString(etud.getNum());
     
    				jtNum.setText(a);
    				jtNom.setText(etud.getNom());
    				jtPrenom.setText(etud.getPrenom());
     
     
    			} catch (Exception e) {
    				 JOptionPane.showMessageDialog(null,"Impossible d'afficher!");
    			}

  2. #2
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Ceci permet d'écrire à la fin du fichier, ce qui génère un fichier XML incorrect.


    Tu dois régénérer le fichier en entier.

    a++

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut
    Ok,donc je fais comment pour régénérer le fichier en entier?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    ?

    Ben... Tu charges ton fichier en mémoire, tu ajoutes les infos que tu veux ajouter, et tu écris le résultat dans le fichier.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    578
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 578
    Par défaut
    Ben ça m'aide pas vraiment.
    J'arrive à insérer des données dans mon fichier xml,je veux juste savoir comment en insérer sans écraser le contenu.
    Si vous pouviez me dire d'abord ce qui ne va pas dans mon code,ce serait bien pour un début,car "charger le fichier en mémoire,régénérer le fichier",désolé mais tout ça me semble un peu vague.
    Merci.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par momjunior Voir le message
    Ben ça m'aide pas vraiment.
    Moi je voudrais élever un petit poney dans ma chambre, mais jusque-là toutes les réponses qu'on m'a données ne m'ont pas vraiment aidé non plus.

    Citation Envoyé par momjunior Voir le message
    J'arrive à insérer des données dans mon fichier xml,je veux juste savoir comment en insérer sans écraser le contenu.
    Tu écris ton propre parseur/formatteur XML qui ouvre un fichier en random access à partir de la fin, remonte jusqu'à la balise fermante du document, formate et écrit le contenu à ajouter, puis réécrit la balise fermante. Bon courage, personne ne le fera pour toi, et rappelle-toi que tu dois rester 100% conforme XML.

    Ça ou alors tu te résignes à utiliser la méthode qui t'a été donnée : régénérer le fichier en entier.

    (Non, je me moque, mais en réalité j'ai déjà eu à faire ça... Je recommande de mettre absolument n'importe quelle solution plutôt que ça.)

    Citation Envoyé par momjunior Voir le message
    Si vous pouviez me dire d'abord ce qui ne va pas dans mon code,ce serait bien pour un début
    Il n'y a rien qui cloche dans ton code, mais dans ton idée. On ne peut pas ajouter des informations à la fin d'un document XML.

    Citation Envoyé par momjunior Voir le message
    car "charger le fichier en mémoire,régénérer le fichier",désolé mais tout ça me semble un peu vague.
    Je suppose que c'est une blague et qu'en réalité tu ne vois juste pas en quoi ça répond à ta question. C'est normal, il n'y a pas de réponse réaliste à ta question.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/03/2009, 11h35
  2. ajout dans un fichier xml sans l'écraser
    Par sws2008 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 05/01/2009, 12h10
  3. [JDOM] comment écrire dans un fichier xml sans écraser son contenu
    Par solawe dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 25/03/2008, 14h11
  4. <xml><asp.net> Ecrire dans un fichier xml
    Par kenkine dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 24/03/2006, 11h17
  5. Ecrire dans un fichier txt sans en effacer le contenu
    Par cari dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/12/2005, 18h11

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