Lire Contenu d'un fichier
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:
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:
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