Bonjour,

Objectif : Enregister des Objets dans un fichier et Les retaurer depuis ce fichier.

Ecriture dans le fichier:
J'ai utillisé la méthode writeObject de la classe ObjectOutputStream pour enregister mes objets. L est un objet de la classe Livre

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
FileOutputStream fout= new FileOutputStream("out.txt");
ObjectOutputStream out= new ObjectOutputStream(fout);
out.writeInt(L);
out.close();
Récupérer les livres stockés depuis le fichier:
Dans cette phase où j'ai le problème : je n'arrive pas à réccupérer mes objets. Voilà comment je procède:
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
 
 
try{
            FileInputStream fis = new FileInputStream("mesEmploye.txt");
            ObjectInputStream ois = new ObjectInputStream(fis);
            List<Livre> L = new ArrayList<livre>();
 
            if(ois.available() == 0) System.out.println("0 BYTES");
 
            if(ois.read() == -1) System.out.println("viiiide");
 
            else{
                    try {
                        while(ois.available() > 0){
                            try{
                                 L.add((Livre) ois.readObject());
 
                             }
                             catch(ObjectStreamException ose) {}
                             catch(ClassNotFoundException cnfe) {}
                            catch (EOFException e){}
                       }
                    }
                    finally { ois.close(); }
            }
}catch (EOFException e){ e.getMessage(); e.printStackTrace(); }
 catch (FileNotFoundException e) {e.printStackTrace();}
 catch (java.io.IOException e) { e.printStackTrace(); }
 catch(Exception e){ e.getMessage(); e.printStackTrace();}
il m'affiche toujours :
0 Bytes
Viiiiiiide
Malgrès que le fichier a été bien alimenté.


Merci pour vos aides.

Sisiniya