Bonjour tout le monde,
Je rencontre une exception lors de la lecture du contenu d'un fichier ObjectInputStream. Ce fichier contient un objet de type Personne.
Lors de la rencontre, le message suivant s'affiche : java.io.StreamCorruptedException: invalid type code: AC.
J'ai enregistré trois Objets sans problème mais je n'arrive pas à les lire.
Je vous donne ici, les codes de l'objet et de l'application.
Code de l'objet :
Code de l'application :
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 public class Personne implements Serializable{ private static final long serialVersionUID = 1L; private String nom; private String prenom; private java.util.Date datenais; private String lieunais; private String sexe; public Personne() { } .... }
Merci pour l'attention accordée à cette demande d'aide.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.text.SimpleDateFormat; import java.util.Scanner; public class LectureEcritureObjets { public static void main(String[] args) { Personne p=new Personne(); File fichier=new File("c:/mesfichiers/listePersonne.dat"); menu(p, fichier); } // fin de main() public static void menu(Personne p, File fichier){ Scanner clavier=new Scanner(System.in); int choix; do { System.out.println("---------------------"); System.out.println("|Menu Principal |"); System.out.println("---------------------"); System.out.println("|1. Enregistrer |"); System.out.println("|2. Ouvrir |"); System.out.println("|0. Quitter |"); System.out.println("---------------------"); System.out.print("Choix : "); choix=clavier.nextInt(); switch(choix){ case 1:enregistrer(p, fichier);break; case 2:ouvrir(p, fichier);break; case 0:{System.out.println("Bye Bye !"); break;} default : {System.out.println("Opération annulée !");choix=0;} }// fin de switch } while(choix!=0); // fin de do..while } // fin de menu() public static void enregistrer(Personne p, File fichier) { .... } public static void ouvrir(Personne p, File fichier){ try { ObjectInputStream flux = new ObjectInputStream( new FileInputStream(fichier)); while(flux.available() > 0) { p = (Personne) flux.readObject(); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); String dateNais = sdf.format(p.getDatenais()); System.out.println( p.getNom() + "\t" + p.getPrenom() + "\t" + dateNais + "\t" + p.getLieunais() + "\t" + p.getSexe()); System.out.println(); } flux.close(); } catch (IOException ioe) { System.err.println(ioe); } catch (ClassNotFoundException cnfe) { System.err.println(cnfe); } } // fin de la méthode ouvrir() }
Partager