[Java] serialisation!
putu
-
debutantJava -
debutantJava -
Bonjour,
J'aurai aimé savoir si La sérialisation permet de sauvegarder seulement "UN" objet a la fois dans un fichier et de le récupérer, ou est ce que c'est possible de sauvgaerder plusieurs objets d'une meme classe grace a cette methode .
Pour un seul objet j'utilise une méthode du genre :
ex:
Person p = new Person();
// Avec tous les déclarations préalable
static void SavePerson(Person p,String personne) throws IOException {
ObjectOutputStream objstream = new ObjectOutputStream(new FileOutputStream(personne));
objstream.writeObject(p);
objstream.close();
}
Person loadPerson(String personne) throws ClassNotFoundException, IOException {
ObjectInputStream objstream = new ObjectInputStream(new FileInputStream(personne));
Object object = objstream.readObject();
objstream.close();
return (Person) object;
}
Mais si je voulais sauvgarder/récuperer N personnes à la fois !Comment faire ???
Merci d'avance pour vos réponses.^^
J'aurai aimé savoir si La sérialisation permet de sauvegarder seulement "UN" objet a la fois dans un fichier et de le récupérer, ou est ce que c'est possible de sauvgaerder plusieurs objets d'une meme classe grace a cette methode .
Pour un seul objet j'utilise une méthode du genre :
ex:
Person p = new Person();
// Avec tous les déclarations préalable
static void SavePerson(Person p,String personne) throws IOException {
ObjectOutputStream objstream = new ObjectOutputStream(new FileOutputStream(personne));
objstream.writeObject(p);
objstream.close();
}
Person loadPerson(String personne) throws ClassNotFoundException, IOException {
ObjectInputStream objstream = new ObjectInputStream(new FileInputStream(personne));
Object object = objstream.readObject();
objstream.close();
return (Person) object;
}
Mais si je voulais sauvgarder/récuperer N personnes à la fois !Comment faire ???
Merci d'avance pour vos réponses.^^
A voir également:
- [Java] serialisation!
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
2 réponses
Salut,
Sérialiser:
Désérialiser:
Cordialement,
Dan
Sérialiser:
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("nomDuFichier.sav"));
out.writeObject(monObject1);
out.writeObject(monObject2);
out.close();
}
catch( IOException e )
{....}
Désérialiser:
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream("nomDuFichier.sav"));
MonObject1 monObject1 = (MonObject1)in.readObject();
MonObject2 monObject2 = (MonObject2)in.readObject();
in.close();
}
catch( ClassNotFoundException e1 )
{....}
catch( IOException e2 )
{....}
Cordialement,
Dan
Salut,
ici MonObject1 et MonObject2 sont 2 classes différentes.
Dans votre exemple de sérialisation, complétons comme ceci:
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("nomDuFichier.sav"));
Personne monObject1 = new Personne ("personne1", "prenom1");
Personne monObject2 = new Personne ("personne2", "prenom2");
out.writeObject(monObject1);
out.writeObject(monObject2);
out.close();
}
catch( IOException e )
{....}
2 questions me viennent : 1 seule d'instance de la classe Personne a été sérialisée? ou les 2?
Autre chose, si les 2 ont été sérialisées, comment récupérer mes 2 objets?
En faisant:
Personne p1 = in.ReadObject();
Personne p2 = in.ReadObject();
?
Dans ce cas, comment récupérer n entrées?
Serait t'il possible de faire quelque chose du genre:
while (Personne p = in.ReadObject()) {
...
}
?
ici MonObject1 et MonObject2 sont 2 classes différentes.
Dans votre exemple de sérialisation, complétons comme ceci:
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("nomDuFichier.sav"));
Personne monObject1 = new Personne ("personne1", "prenom1");
Personne monObject2 = new Personne ("personne2", "prenom2");
out.writeObject(monObject1);
out.writeObject(monObject2);
out.close();
}
catch( IOException e )
{....}
2 questions me viennent : 1 seule d'instance de la classe Personne a été sérialisée? ou les 2?
Autre chose, si les 2 ont été sérialisées, comment récupérer mes 2 objets?
En faisant:
Personne p1 = in.ReadObject();
Personne p2 = in.ReadObject();
?
Dans ce cas, comment récupérer n entrées?
Serait t'il possible de faire quelque chose du genre:
while (Personne p = in.ReadObject()) {
...
}
?