Bonjour,

J'ai une classe IODATA me permettant de faire la sérialisation de mes listes d'objets.

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
 
    public <T> void serializer(T t, String fichierSortie){
        try {
            // ouverture d'un flux de sortie vers le fichier nomObjet.serial
            FileOutputStream fos = new FileOutputStream(fichierSortie + ".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(t);
                // on vide le tampon
                oos.flush();
                System.out.println(t + " a ete serialise");
            } finally {
                //fermeture des flux
                try {
                    oos.close();
                } finally {
                    fos.close();
                }
            }
        }
        catch(IOException ioe) {
            ioe.printStackTrace();
        }
    }
Bien que je ne maîtrise pas les spécifications de ce code, je lui envoie un objet et un String puis il me fait la sérialisation.

Le problème est que, lorsque je souhaite sérialiser un objet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
IOData iodata = new IOData();
 
ArrayList<Avion> desAvions = new ArrayList<Avion>();
 
Avion a1 = new Avion("Airbus A340-300");
Avion a2 = new Avion("Airbus A340-300");
Avion a3 = new Avion("Airbus A340-300");
Avion a4 = new Avion("Airbus A340-300");
Avion a9 = new Avion("Airbus A340-300");
 
iodata.serializer(desAvions, "avion");
Cependant, le rendu dans le fichier avion.serial est comme suit :


J'aimerai comprendre pourquoi je n'arrive pas à sérialiser mon ArrayList d'avion.