comment sérialiser/désérialiser liste des objets en java?
Comment sérialiser de nombreux objets d'une classe Sérialisable en Java?
Par exemple
public class Personne implements java.io.Serializable {
String nom;
String date;
Personne(String nom,String date)
{
this.nom=nom;
this.date=date;
}
}
Je veux créer de nombreux objets :
Personne p1 = new Personne("X","XX");
Personne p2 = new Personne("Y","ZZ");
Personne p3 = new Personne("Z","ZZ");
--> fonction statique de sérialiser les objets
--> static function pour désérialiser
Code complet :
package game2;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
/**
*
* @author ahmedJ
*/
public class Personne implements java.io.Serializable {
String nom;
String date;
Personne(String nom, String date) {
this.nom = nom;
this.date = date;
}
public static void Serialiser(Personne sp) {
try {
ObjectOutputStream out = new ObjectOutputStream(
new FileOutputStream("Score.sp"));
out.writeObject(sp);
out.flush();
out.close();
} catch (java.io.IOException e) {
e.printStackTrace();
}
}
public static void Deserialiser() {
Personne a1, a2, a3;
try {
FileInputStream file = new FileInputStream("Score.sp");
ObjectInputStream in = new ObjectInputStream(file);
a1 = (Personne) in.readObject();
a2 = (Personne) in.readObject();
a3 = (Personne) in.readObject();
System.out.println(a1.nom);
System.out.println(a2.nom);
System.out.println(a3.nom);
in.close();
file.close();
} catch (Exception ex) {
System.err.println("Erreur de lecture " + ex);
}
}
public static void main(String[] sd) {
Personne p1 = new Personne("X", "XX");
Personne p2 = new Personne("Y", "ZZ");
Personne p3 = new Personne("Z", "ZZ");
Serialiser(p1);
Serialiser(p2);
Serialiser(p3);
Deserialiser();
}
}
Vous devez vous connecter pour publier un commentaire.
Utilisation ObjectOutputStream à écrire et ObjectInputStream à lire. Très simple et fonctionne bien:
Vous pouvez ajouter une méthode statique de Personne comme si.
Vous serait tout simplement parcourir un tableau ou d'une collection de quelque sorte et d'écrire chaque un et de l'autre côté de les lire dans.