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

Langage Java Discussion :

Serialiser un Set


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Kevin12
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 122
    Par défaut Serialiser un Set
    Peut-on sérialiser une collection de type HashSet en java ?
    Si oui comment procéder ?

  2. #2
    Membre Expert
    Avatar de Anthony.Desvernois
    Homme Profil pro
    Ingénieur sécurité & risque
    Inscrit en
    Juin 2007
    Messages
    1 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité & risque
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 489
    Par défaut
    Bonjour,

    HashSet implémente Serializable. Donc: http://java.sun.com/j2se/1.4.2/docs/...ializable.html

  3. #3
    Membre confirmé Avatar de Kevin12
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 122
    Par défaut
    J'ai essayé d'adapter le code de ce
    tuto
    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
    public void serializeRetrait(){
            try {
    
    			// ouverture d'un flux de sortie vers le fichier "myRetrait.serial"
    			FileOutputStream fos = new FileOutputStream("myRetraits.serial");
    
    			// création d'un "flux objet" avec le flux fichier
    			ObjectOutputStream oos= new ObjectOutputStream(fos);
    			try {
    				// sérialisation : écriture de l'objet dans le flux de sortie
    				oos.writeObject(myRetraits); 
    				// on vide le tampon
    				oos.flush();
    				//System.out.println(myRetraits + " a ete serialise");
    			} finally {
    				//fermeture des flux
    				try {
    					oos.close();
    				} finally {
    					fos.close();
    				}
    			}
    		} catch(IOException ioe) {
    			ioe.printStackTrace();
    		}        
        }
    et je reçois le stack trace :
    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
    java.io.NotSerializableException: Retrait
    	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
    	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
    	at java.util.HashSet.writeObject(HashSet.java:254)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:585)
    	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
    	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
    	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
    	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
    	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
    	at Distributeur.serializeRetrait(Distributeur.java:113)
    	at JDRetrait$2.actionPerformed(JDRetrait.java:91)

  4. #4
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    La structure HashSet est elle même sérialisable, mais pour sérialiser un HashSet rempli d'objets il faut que tout ces objets soient eux même sérialisables. Ainsi, ton objet Retrait doit devenir sérialisable.

  5. #5
    Membre confirmé Avatar de Kevin12
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 122
    Par défaut
    Citation Envoyé par djsnipe Voir le message
    La structure HashSet est elle même sérialisable, mais pour sérialiser un HashSet rempli d'objets il faut que tout ces objets soient eux même sérialisables. Ainsi, ton objet Retrait doit devenir sérialisable.
    Merci.

  6. #6
    Membre confirmé Avatar de Kevin12
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 122
    Par défaut
    Vous avez une astuce pour sérialiser plusieurs Set, la première idée qui m'est venue de la tête est un peu longue, une méthode (serializeNonSet()) pour chaque set ?

  7. #7
    Membre confirmé Avatar de Kevin12
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 122
    Par défaut
    C'est bon j'avais oublié de sérialiser les autres classes qui composent la classe retrait, Distributeur, Carte et Compte.

Discussions similaires

  1. set term ^
    Par tux dans le forum Débuter
    Réponses: 8
    Dernier message: 12/10/2004, 20h42
  2. Serialiser de gros documents XML
    Par philemon_siclone dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 17/09/2003, 15h26
  3. IB 6.0.1 - Win XP - Character Set
    Par SuperTotor dans le forum InterBase
    Réponses: 4
    Dernier message: 03/06/2003, 20h25
  4. Query data set
    Par Sandra dans le forum JBuilder
    Réponses: 3
    Dernier message: 20/01/2003, 10h08
  5. character set // Nls_lang
    Par fopicht dans le forum Oracle
    Réponses: 2
    Dernier message: 23/05/2002, 12h04

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