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

Persistance des données Java Discussion :

XMLEncoder et ArrayList


Sujet :

Persistance des données Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Par défaut XMLEncoder et ArrayList
    Bonjour tout le monde

    Actuellement je suis sur ou projet ou il nous est demandé de faire une persistance fichier et BD.

    Pour la persistance fichier je suis tombé sur ce tutoriel http://ydisanto.developpez.com/tutor...ation/partie2/

    J'ai donc repris les exemple pour tester, et j'ai voulu rajouter une collection pour voir comment cela s'afficher mais ça ne marche pas (j'ai bien ajouter les accesseurs et modificateurs)

    voici le code des fichiers

    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
     
    import java.beans.PersistenceDelegate;
    import java.beans.XMLEncoder;
    import java.io.FileOutputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
     
     
    public final class XMLTools {
     
        private XMLTools() {}
     
        /**
         * Serialisation d'un objet dans un fichier
         * @param object objet a serialiser
         * @param filename chemin du fichier
         */
        public static void encodeToFile(Object object, String fileName) throws FileNotFoundException, IOException {
            // ouverture de l'encodeur vers le fichier
            XMLEncoder encoder = new XMLEncoder(new FileOutputStream(fileName));
            try {
                // serialisation de l'objet
                encoder.writeObject(object);
                encoder.flush();
            } finally {
                // fermeture de l'encodeur
                encoder.close();
            }
    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
     
    import java.util.ArrayList;
     
    public class User{
     
    	 private String login;
    	    private String password;
    	    private ArrayList<String> listeNote;
     
    	    public User() {
    		    this.login="anonymous";
    		    this.password="";
    	    }
     
    	    public User(String login, String password,ArrayList<String> listeNote) {
    	        this.login = login;
    	        this.password = password;
    	    }
     
    	    public String getLogin() {
    	        return login;
    	    }
     
    	    public void setLogin(String login) {
    	        this.login = login;
    	    }
     
    	    public String getPassword() {
    	        return password;
    	    }
     
    	    public void setPassword(String password) {
    	        this.password = password;
    	    }
     
    	    public ArrayList<String> getListeNote() {
    			return this.listeNote;
    		}
     
    	    public void setListeNote(ArrayList<String> listeNote) {
    			this.listeNote = listeNote;
    		}
     
     
     
     
    		public String toString() {
    	        return login;
    	    }
     
     
    	}
    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
     
    import java.util.ArrayList;
     
     
    public class principale {
     
    	 public static void main( String[] args) {
     
    	        	ArrayList<String> listeNote=new ArrayList<String>();
    	        	listeNote.add("Bien");
    	        	listeNote.add("Nulle");
    	        	listeNote.add("Bon");
    	            User user = new User("admin", "azerty", listeNote);
    	            	try {
    	            	XMLTools.encodeToFile(user, "user.xml");
    	            	   } catch(Exception e) {
    	       	            e.printStackTrace();
    	       	        }
    	            }
     
     
    }

    et le résultat est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <java version="1.6.0_10" class="java.beans.XMLDecoder">
    <object class="User">
    <void property="login">
    <string>admin</string>
    </void>
    <void property="password">
    <string>azerty</string>
    </void>
    </object>
    </java>


    voilou
    Yann

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Bonjour,

    En fait la sérialisation XML est juste. Le problème vient du fait que dans ta classe User, le constructeur ne renseigne pas la List donc elle n'est pas sérialisée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public User(String login, String password,ArrayList<String> listeNote) {
          this.login = login;
          this.password = password;
          this.listeNote = listeNote; // a ajouter!!!
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Par défaut
    Quel endouille je suis merci beaucoup en tout caspour la rapidité de la réponse (encore une fois^^)


    bonne journée

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Par défaut
    Je viens de tester avec un ArrayList<User> a la palce de la ArrayList<String>
    Est ce que ça doit marcher automatiquement (dans ce cas la j'ai fait une erreur de codage) ou y'a t'il une manipulation a faire?

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

Discussions similaires

  1. [ArrayList]transformer l'objet récupéré en double...
    Par snoop dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 16/07/2004, 16h16
  2. [info]arrayList ou Vector
    Par schousso dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/05/2004, 15h47
  3. [info]ArrayList
    Par schousso dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 06/05/2004, 11h44
  4. [Fichier] Ajout des lignes de doc dans arraylist
    Par 3adoula dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 29/04/2004, 22h41
  5. [ STRUTS ][ JSP ][ ArrayList] un lien pour trier
    Par LoulouFifi dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 03/02/2004, 17h24

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