[Sérialisation] Différence entre deux méthodes
Bonjour,
Voici deux méthodes que j'ai utilisé dans des projets sans chercher réellement à savoir ce qu'elles faisaient.
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
|
/**
* @param T t Un objet à sérialiser
* @param String fichierSortie le fichier dans lequel devra être sérialiser l'objet
* @return <T> void
*/
public <T> void serializer(T t, String fichierSortie){
try {
// ouverture d'un flux de sortie vers le fichier nomObjet.serial
FileOutputStream fos = new FileOutputStream(fichierSortie + ".serial");
// création d'un "flux objet" avec le flux fichier
ObjectOutputStream oos= new ObjectOutputStream(fos);
try {
// sérialisation : écriture de l'objet dans le flux de sortie
oos.writeObject(t);
// on vide le tampon
oos.flush();
System.out.println(t + " a ete serialise");
} finally {
//fermeture des flux
try {
oos.close();
} finally {
fos.close();
}
}
} |
Code:
1 2 3 4 5 6 7 8 9 10
|
public <T> void writeFile(T t, String fichierSortie) throws IOException {
ObjectOutput out = null;
try {
out = new ObjectOutputStream(new FileOutputStream(fichierSortie + ".serial"));
out.writeObject(t);
} finally {
out.close();
}
} |
Quelle est la méthode à utiliser ?
Laquelle est la plus... fiable ou mieux écrite ?
Quelles sont les différences entre ces deux méthodes ?
Merci à vous,