Tableau d'objet a deserialiser

laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 - 8 sept. 2012 à 23:24
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 9 sept. 2012 à 08:03
bonjour tout le monde!!!
voila mon petit souci ,je n'arrive pas a deserialiser mon tableau d'objet,est ce que quelqu'un pourrait me montrer comment faire ,j'arrive a les deserialiser ,en instanciant un objet un a un ,mais quand mes objets instancie se trouvent dans un tableau ,je ne vois pas trop comment faire ,je me doute bien qu'il va me falloir une boucle pour les sortir un a un mais...
voici ma classe:


public class Sauveobject {

public static void main(String[] args) {

Personne[] personnes = { new Cadre("klutr", "michou", 55, "branleur"),
new Employe("kilouuy", "gege", 58, "malheureux", "fatigue") };
try {
ObjectOutputStream sortie = new ObjectOutputStream(
new FileOutputStream("personel"));
sortie.writeObject(personnes);

sortie.close();

} catch (Exception e) {

}
ObjectInputStream ois;
try {
ois = new ObjectInputStream(
new FileInputStream(new File("personel")));

try {
System.out.println("Mon personel");
System.out.println("*******************************************************************\n");
for(int i=0;i<personnes.length;i++){
System.out.println (((Personne) ois.readObject()).toString());
}



System.out.println("*******************************************************************\n");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
ois.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}


}


}


[code=autre][code=java]
/code/code

3 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
9 sept. 2012 à 08:01
Salut,

Je pense que c'est sérialiser et non désérialiser que tu veux dire.

Commence par enlever toutes les maladresses des ton code :

public class Sauveobject { 

    public static void main(String[] args) { 
        Personne[] personnes = { new Cadre("klutr", "michou", 55, "branleur"), 
new Employe("kilouuy", "gege", 58, "malheureux", "fatigue") }; 
        try { 
            ObjectOutputStream sortie = new ObjectOutputStream( 
            new FileOutputStream("personel")); 
            sortie.writeObject(personnes); 
            sortie.close(); 
        } catch (IOException e) { 
            e.printStackTrace();
        } 
        ObjectInputStream ois; 
        try { 
            ois = new ObjectInputStream(new FileInputStream(new File("personel"))); 
            System.out.println("Mon personel"); 
            System.out.println("*******************************************************************\n"); 
            for(int i=0;i<personnes.length;i++){ 
                System.out.println (((Personne) ois.readObject()).toString()); 
            } 
            System.out.println("*******************************************************************\n"); 
            ois.close(); 
        } catch (FileNotFoundException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
    } 
} 
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
9 sept. 2012 à 08:02
J'ai oublié FileNotFoundException dans le premier bloc.

Quelle erreur obtiens tu ?

Normalement, la sérialisation, ca ne fonctionne pas comme ca, tu peux le faire bien plus proprement.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
9 sept. 2012 à 08:03
Voilà un exemple de sérialisation propre : http://www.javafr.com/codes/UTILISATION-SERIALISATION_53479.aspx
0
Rejoignez-nous