1. Serialisierung - Studiengang Software Engineering

Werbung
Heilbronn, 08.03.04
1. Serialisierung.doc
Seite 1 von 2
Vorgehen zur Serialisierung von Objekten
25.1.04
Quelle:
Java Tutorial, trail "Essential Java Classes", Lesson "I/O: Reading and Writing"
1. Öffnen eines Output-Streams zum Abspeichern:
FileOutputStream out = new FileOutputStream("theTime");
ObjectOutputStream s = new ObjectOutputStream(out);
s.writeObject("Today");
s.writeObject(new Date());
s.flush();
Mögliche Exceptions:
bei new FileOutputStream:
FileNotFoundException
bei new ObjectOutputStream:
IOException
bei writeObject:
NotSerializableException
writeObject serialisiert rekursiv auch alle referenzierten Objekte!
2. Alle zu serialisierenden Objekte müssen "Serializable" implementieren
... implements [java.io.]Serializable
3. Öffnen eines Input-Streams zum Einlesen:
FileInputStream in = new FileInputStream("theTime");
ObjectInputStream s = new ObjectInputStream(in);
String today = (String)s.readObject();
Date date = (Date)s.readObject();
Mögliche Exceptions:
bei new FileInputStream:
bei new ObjectInputStream:
bei readObject:
FileNotFoundException
IOException
ClassNotFoundException
Ergebnis bis jetzt:
die Spieler werden einmal mit dem Verein VfB serialisiert.
Dann noch einmal mit der Spielerliste gespeichert!
Frage: sind zwei Kuranyis, die zweimal eingelesen wurden, ein und derselbe?
oder zwei gleich Objekte auf unterschiedlichen Adressen?
Ja, sie sind es. Also macht mehrfaches Serialisieren eines Objektes nichts aus!
Dann braucht man sich vermutlich nicht um ein spezialisiertes Serialisieren kümmern?
4. Spezielles Serialisieren einer Objektklasse:
Man kann eine eigene Methode writeObject(ObjectOutputStream s) schreiben.
Sie soll so aussehen:
private void writeObject(ObjectOutputStream s) throws IOException {
s.defaultWriteObject();
// customized serialization code
}
Prof. Dr.-Ing. Gerald Permantier, Produktion und Software Engineering, Fachhochschule Heilbronn
Max-Planck-Str. 39, 74081 Heilbronn ) 07131/504- 251/265 4 07131/25 24 70 - [email protected]
Heilbronn, 08.03.2004
1. Serialisierung.doc
Seite 2
D.h., man kann ZUSÄTZL ICHE Maßnahmen vorsehen, aber keine Objektverweise
von der Serialisierung ausnehmen.
Sonst würden diese Verweise ja beim wieder Einlesen fehlen!
Also: writeObject nicht zu spezialisieren.
Prof. Dr.-Ing. Gerald Permantier, Produktion und Software Engineering, Fachhochschule Heilbronn
Max-Planck-Str. 39, 74081 Heilbronn ) 07131/504- 251/265 4 07131/25 24 70 - [email protected]
Herunterladen