Fichier binaire objet (4)
Exemple
public class Alcool {
public double degre;
public String nom;
public Coktail en_melangeant(JusDeFruit jus) { … }
}
public class Bar {
public TreeSet les_liquides;
public void enregistrer() { … }
}
public static void main( … ) {
…
Bar b = new Bar();
…
b.enregistrer();
}
Fichier binaire objet (5)
Exemple (suite)
public class Bar {
public TreeSet les_liquides;
public void enregistrer() {
try {
FileOutputStream w =
new FileOutputStream("test.dat");
ObjectOutputStream o =
new ObjectOutputStream(w);
o.writeObject(les_liquides);
o.close();
w.close();
} catch (Exception e)
{ System.out.println(“Erreur d’IO”);
}
}
Fichier binaire objet (6)
• Très important :
Pour être écrit dans un fichier, un objet (et les objets quil utilise)
doit implémenter linterface serializable.
• Signature des méthodes :
private void writeObject(java.io.ObjectOutputStream
out)
throws IOException {
out.defaultWriteObject();
}
private void readObject(java.io.ObjectInputStream
in)
throws IOException, ClassNotFoundException {
in.defaultReadObject();
}
Exemple (suite)
import java.io.Serializable;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
public class Bar implements Serializable {
public TreeSet les_liquides;
public void enregistrer() {
FileOutputStream w = new FileOutputStream("test.dat");
ObjectOutputStream o = new ObjectOutputStream(w);
o.writeObject(les_liquides);
o.close();
w.close();
}
private void writeObject(java.io.ObjectOutputStream out)
throws IOException {
out.defaultWriteObject();
}
private void readObject(java.io.ObjectInputStream in)
throws IOException, ClassNotFoundException {
in.defaultReadObject();
}
}
Implémentation optionnelle !