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

avec Java Discussion :

Sérialisation, Désérialisation des objets


Sujet :

avec Java

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Sérialisation, Désérialisation des objets
    Bonjour à tous.

    Je compte sur vous pour comprendre comment fonctionne la sérialisation et la désérialisation des objets. En effet, je voudrais sérialiser les objets d'une classe.
    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
    53
    54
    55
    56
    57
    public class PartieDeJeu  implements Serializable {
     
    	        //*********DECLARATIONS DES ATTRIBUTS***********//
     
    	private int tempsDeJeu;
    	private int nbReset;
    	private int option;  
    	private Vector<Integer> lesNombre;
    	private int positionNoise;
    	private int somme;
    	private int moyenne;
    	private int nbDecoupage;
     
    	// methode pour sérialiser
           public void  writePartieDeJeu() {
     
    		 try
    	      {
    	         FileOutputStream fileOut =
    	         new FileOutputStream("partieDeJeu.ser");
    	         ObjectOutputStream out = new ObjectOutputStream(fileOut);
    	         out.writeObject(this);
    	         out.close();
    	         fileOut.close();
    	      }catch(IOException i)
    	      {
    	          i.printStackTrace();
    	      }
     
    	}
     
     
          //méthode pour désérialiser
          public  PartieDeJeu readPartieDeJeu() {
     
    		 PartieDeJeu p = null;
    		 try
    	      {
    	         FileInputStream fileIn = new FileInputStream("partieDeJeu.ser");
    	         ObjectInputStream in = new ObjectInputStream(fileIn);
    	         p = (PartieDeJeu) in.readObject();
    	         in.close();
    	         fileIn.close();
    	      }catch(IOException i)
    	      {
    	         i.printStackTrace();
    	         return p;
    	      }catch(ClassNotFoundException c)
    	      {
    	         System.out.println("partie de jeu class introuvable");
    	         c.printStackTrace();
    	         return p;
    	      }
    		 return p;
     
    	}
    }
    J'arrive à créer le fichier partieDeJeu.ser à l'appel de la méthode writePartieDeJeu(). Il est physiquement sur mon disque dur. Le problème est que je n'arrive pas à lire l'objet sérialisé avec readPartieDeJeu().

    Les objets sont-ils sérialisés les uns à la suite des autres comme dans un fichier ? Peut-on les lire les un après les autres ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par mimi84 Voir le message
    Le problème c est que j'arrive pas à lire l'objet sérialisé avec readPartieDeJeu().
    Tu peux préciser quelle erreur tu as?

  3. #3
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Je n' ai aucun message d'erreur. Sauf que rien ne se passe quand je fais la lecture.

  4. #4
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    En fait le problème n 'est pas à la lecture. Je constate plutôt qu'a l’écriture un nouveau fichier est créé.
    Et ne contient plus l'objet qui a été écrit avant mais plutôt celui qui vient d’être écrit.
    Donc je voudrais savoir comment écrire les objets les uns à la suite des autres et pourvoir les relire les un après les autres.

    Merci D'avance.

  5. #5
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Points : 1 577
    Points
    1 577
    Par défaut
    Bonjour,

    en fait il faut écrire les objets les uns après les autres, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    out.writeInt( tempsDeJeu );
    out.writeInt( nbReset );
    out.writeObject( lesNombre );
    Ne pas oublier la gestion de fermeture des objets de flux, et le traitements des exceptions, bien sûr.

    Pour dé-sérialiser, il faut lire les objets exactement dans le même ordre qu'ils ont été écrits, sous peine de lever une exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tempsDeJeu = in.readInt();
    nbReset = in.readInt();
    lesNombre = (Vector<Integer>)in.readObject();
    Attention a bien gérer les différentes exceptions qui peuvent survenir.

Discussions similaires

  1. Sérialisation / désérialisation d'objets
    Par jecomprendsrien dans le forum Flex
    Réponses: 0
    Dernier message: 22/02/2012, 16h32
  2. Désérialiser des Objets JSON
    Par rad_hass dans le forum Silverlight
    Réponses: 7
    Dernier message: 24/09/2010, 20h46
  3. [PHP 5.3] Sérialiser et Désérialiser un objet dans une variable de session
    Par hervelyon dans le forum Langage
    Réponses: 1
    Dernier message: 11/05/2010, 21h26
  4. [POO] Sérialiser des objets complexes
    Par Smaon dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/01/2009, 18h44
  5. Sérialiser des objets natifs JS
    Par Ougha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 27/09/2007, 20h17

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