Bonjour messieurs...
Voila dans le cadre des mes PTI pour mon BTS, j'ai developpé un agenda en JAVA, certaine de ces classes sont serializable notement la classe ListePerso.
L'ecriture de plusieurs objets serialisés dans un même fichier.ser est facile et j'ai reussi par contre pour lire tous les objetsdans un fichier j'ai reussi en partie puisqu'il fait bien le traitement dans mon test de recuperation seul probleme.. a la fin du fichier il me fait une erreur, j'ai cherche ce que je pouvais et tester plusieurs méthodes mais rien n'y fait. C'est surement possible j'ai du mal chercher ou mal utiliser ce que j'avais trouvé quoiqu'il en soit je m'en remet a vous pour avoir un indice de la solution.
Une fois l'application lancée voici l'erreur :
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
30 public class TestRecup { public static void main(String[] args) { ListePerso listeper; /*Test pour lecture de plusieur objet serialisé, marche sauf une EOFException sur le dernier :s */ try { FileInputStream fileread = new FileInputStream("listsave.ser"); ObjectInputStream ois = new ObjectInputStream(fileread); listeper = (ListePerso)ois.readObject(); while (listeper != null) { JOptionPane.showMessageDialog(null,listeper.getNom()); ois = new ObjectInputStream(fileread); listeper = (ListePerso)ois.readObject(); } ois.close(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException f) { f.printStackTrace(); } } }
Il est clair que j'ai un probleme a la gestion de l'EOF de mon fichier mais quelque soit ou je la place, les erreurs change ... le code que j'ai poster est le plus proche du resultat voulu... en fait j'ai deux listes perso dans mon fichier pour le test, une appelé lister et une appelé beta. Avec ce code les deux message dialog donne le bon resultat et cette erreur, quand je tentes autre chose soit j'ai trois fenetre 2 avec beta une avec lister, soit j'ai que lister.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 java.io.EOFException at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source) at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source) at java.io.ObjectInputStream.readStreamHeader(Unknown Source) at java.io.ObjectInputStream.<init>(Unknown Source) at test.TestRecup.main(TestRecup.java:30)
Merci d'avance de l'explication concernant la gestion de cette exception
Je précise que je ne souhaite pas la solution toute seule, une explication de la solution me suffit amplement, en fonction, je trouverai la solution par moi même ^^
Cordialement
Partager