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 :

Sérialiser plusieurs instances de la même classe [JAXB]


Sujet :

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

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 216
    Points : 154
    Points
    154
    Par défaut Sérialiser plusieurs instances de la même classe
    Bonjour,

    Voici le code de la classe que je sérialise dans un fichier XML:
    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
    @XmlRootElement(name = "Appel")
    @XmlAccessorType (XmlAccessType.FIELD)
    public class TypeAppel {
    	private String id;
        private String typeAppel;
        private String objMail;
     
        public String getId() {
        	Utils u = new Utils();
        	id = u.getGUID();
    		return id;
    	}
     
        public String getTypeAppel() {
            return typeAppel;
        }
     
        public void setTypeAppel(String typeAppel) {
            this.typeAppel = typeAppel;
        }
     
        public String getObjMail() {
            return objMail;
        }
     
        public void setObjMail(String objMail) {
            this.objMail = objMail;
        }
     
        public TypeAppel() {
            this.typeAppel = null;
            this.objMail = null;
        }
     
        public TypeAppel(String typeAppel, String objMail) {
            this.typeAppel = typeAppel;
            this.objMail = objMail;
        }
     
     
    }
    J'ai une deuxième classe qui sert à avoir une liste de types d'appels:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private List<TypeAppel> listTypeAppel = new ArrayList<>();
    J'obtiens donc le code XML suivant:

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ListTypAppels>
        <TypeAppel>
            <typeAppel>normal</typeAppel>
            <objMail>N</objMail>
        </TypeAppel>
    </ListTypAppels>

    Si un type d'appel est déjà sauvé et qu'il faut en ajouter un nouveau, faut-il recréer le fichier dans son entièreté? Ou, avec JAXB, est-il possible de sérialiser une nouvelle instance de la classe tout en préservant ce qui est déjà dans le fichier? Si oui, pouvez-vous m'éclairer sur la façon de procéder?

    Merci d'avance.
    Paul Van Walleghem

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    Citation Envoyé par Paul Van Walleghem Voir le message
    Si un type d'appel est déjà sauvé et qu'il faut en ajouter un nouveau, faut-il recréer le fichier dans son entièreté?
    Oui. 'Faut dire aussi que ça ne pose aucun problème, donc bon...

    Citation Envoyé par Paul Van Walleghem Voir le message
    Ou, avec JAXB, est-il possible de sérialiser une nouvelle instance de la classe tout en préservant ce qui est déjà dans le fichier?
    Non. En même temps ça servirait à rien.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 216
    Points : 154
    Points
    154
    Par défaut
    Merci de votre réponse. Je comprends bien votre réflexion. C'est sans doute moi qui ne vous ai pas exposé le problème correctement, je ne suis pas un spécialiste de Java. Mais en posant la question, j'ai voulu m'assurer de ne pas me tromper dans le raisonnement.

    Ce qui m'étonne dans cette perspective c'est qu'il faille charger un fichier entier uniquement pour lui ajouter quelques données supplémentaires. Côté consommation mémoire, je me demandais s'il y avait mieux...
    Paul Van Walleghem

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Côté consommation mémoire, tu démarres Java. Alors ton fichier de même pas 1ko, hein...

    De toute façon XML ne permet pas ce genre de chose, à cause de la balise fermante. Pour certains formats de fichiers on peut toujours ajouter à la fin, mais "à la fin" ça veut dire à la fin. Là il y a la balise fermante à la fin, donc pas d'ajout. On réécrit tout.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 216
    Points : 154
    Points
    154
    Par défaut
    Ok, merci beaucoup.
    Salutations,
    Paul Van Walleghem

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/06/2016, 19h24
  2. Ouvrir plusieurs instances d'un même Etat
    Par SansSucre dans le forum IHM
    Réponses: 4
    Dernier message: 06/07/2007, 16h53
  3. Plusieurs instances d'un même objet
    Par speedster dans le forum Hibernate
    Réponses: 1
    Dernier message: 28/12/2006, 11h46
  4. Réponses: 2
    Dernier message: 11/12/2006, 13h15
  5. [Applet]Utiliser plusieurs Applet dans une même classe
    Par BRAUKRIS dans le forum Applets
    Réponses: 5
    Dernier message: 11/06/2004, 15h27

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