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

Collection et Stream Java Discussion :

Serialisation/deserialisation d'un arrayList retourne des objets vides


Sujet :

Collection et Stream Java

Vue hybride

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 99
    Par défaut Serialisation/deserialisation d'un arrayList retourne des objets vides
    bonjour,

    j'utilise la serialisation pour sauvegarder mes données, notament je serialize un arraylist comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ArrayList<FishObject> objects = null;
    ... affectation de objects ...
    FileOutputStream fos = new FileOutputStream("monfichier");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(objects);
    oos.flush();
    oos.close();
    FishObject est bien serialisable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class FishObject extends Object3D implements Comparable<FishObject>, Serializable{
    et sauf erreur de ma part, apres un bon paquet de debug mon arrayList objects contient bien des données avant d'être sérialisé

    Quand je recharche tout ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    fis = new FileInputStream("monfichier");
    ois = new ObjectInputStream(fis);
    objects = (ArrayList<FishObject>) ois.readObject();
    ois.close();
    mon arrayList objects est plein d'objets vides (attributs aux valeurs par défaut), il semble quand bien que le nombre d'objets est bon au moins
    Alors là je vois pas ...
    help

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 959
    Par défaut
    Et si on jetait un coup d'oeil dans le fichier?

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 99
    Par défaut
    Bé oui !
    mais j'ai du mal a lire le binaire ... comment faire ?
    fichier joint (nucleus.ser dans une archive zip)

    Merci
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par cdtkoenig
    mon arrayList objects est plein d'objets vides (attributs aux valeurs par défaut)
    Est ce que ces attributs sont hérités de la classe Object3D ? Si oui, celle ci est-elle bien Serializable ?
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 99
    Par défaut
    Bingo
    Object3D n'etait pas marqué comme serialisable et avait un attribut de type Pixel3D qui ne l'etait pas non plus.
    Je profite pour poser une aute question sur la serialisation :
    n'est-il pas risqué de stocker des données via la serialisation car si j'ai bien compris, si j'ajoute un attribut à ma classe dans 3 mois, mon appli ne pourra plus charger les fichiers de la version n-1 ?
    Comment faire autrement sans passer trop de temps à coder tout ca ?

    Merci

  6. #6
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Tu peux tenter la sérialisation XML.

    Les sauvegardes sont plus faciles à modifier "à la main", et sont compréhensibles quand on les ouvre avec un éditeur de texte, ce qui n'est pas le cas d'un fichier binaire
    Elles passent mieux d'une version de ton programme à la suivante qui a un attribut en plus (enfin... tout dépend de la manière dont tu codes ta sérialisation)

    Par contre, les fichiers ainsi créés sont plus gros. Et si tu parses tes fichiers avec Dom, cela peut poser des problèmes si tes sauvegardes sont trop volumineuses
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

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

Discussions similaires

  1. [PHP 4] Formulaire d'envoi toujours retourne des valeurs vides..
    Par linusminus dans le forum Langage
    Réponses: 1
    Dernier message: 04/08/2014, 11h00
  2. SQL Server retourne des champs vides
    Par Ferllings dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/02/2011, 14h16
  3. [PDO] Query retourne des champs vides
    Par ToonToon1 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/01/2011, 16h25
  4. [Problèmes avec ArrayList] Supprimer des objets égaux à null
    Par smutmutant2003 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 08/10/2009, 10h43
  5. Intercepter des objets "vides".
    Par CRUSOE13 dans le forum Access
    Réponses: 9
    Dernier message: 27/06/2005, 00h08

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