probléme avec la sérialisation
Bonjour
Mon souci est le suivant:j'ai stocké des données dans un fichier(etudiant.txt) grâce à la sérialisation.Le problème est que je ne sais pas comment récupérer les données que j'ai stockées et les afficher.
Ensuite si j'essaie de mettre 2 enregistrements dans le fichier,est ce que le 2e va écraser le premier?
Merci d'avance.
En fait j'ai 2 classes;voici une partie de la 1ere:
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 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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
public void actionPerformed(ActionEvent ev) {
if(ev.getSource().equals(boutonOk)){
Etudiant etud=new Etudiant();
etud.setNom(jtNom.getText());
etud.setPrenom(jtPrenom.getText());
try {
FileOutputStream fos=new FileOutputStream("etudiant.txt");
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(etud);
oos.flush();
oos.close();
JOptionPane.showMessageDialog(null,"Sauvegarde réussie!");
} catch (Exception e) {
e.printStackTrace();
}
}
if(ev.getSource().equals(boutonAfficher)){
/*Etudiant fichier=new Etudiant();
//fichier.setTitre(getTxttitre().getText());
//fichier.setPrenom(getTxtcontenu().getText());
try {
System.out.println("reussi");
System.out.println("creation de : " + fichier);
FileInputStream fis=new FileInputStream("etudiant.txt");
ObjectInputStream ois=new ObjectInputStream(fis);
/* String s = (String)ois.readObject();
System.out.println(s);*/
//Etudiant f= (Etudiant)ois.readObject();
//jtNom.setText(f.getPrenom());
//jtPrenom.setText(f.getPrenom());
// ois.close();
// } catch (Exception e) {
//e.printStackTrace();
// }
Etudiant p = null;
try {
// ouverture d'un flux d'entrée depuis le fichier "etudiant.txt"
FileInputStream fis = new FileInputStream("etudiant.txt");
// création d'un "flux objet" avec le flux fichier
ObjectInputStream ois= new ObjectInputStream(fis);
try {
// désérialisation : lecture de l'objet depuis le flux d'entrée
p = (Etudiant) ois.readObject();
} finally {
// on ferme les flux
try {
ois.close();
} finally {
fis.close();
}
}
} catch(IOException ioe) {
ioe.printStackTrace();
} catch(ClassNotFoundException cnfe) {
cnfe.printStackTrace();
}
if(p != null) {
System.out.println(p + " a ete deserialise");
}
}
Et voici la classe Etudiant:
public class Etudiant implements Serializable{
private String nom;
private String prenom;
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getPrenom() {
return prenom;
}
public void setPrenom(String prenom) {
this.prenom = prenom;
}
public Etudiant() {
}
} |