Themen De-/Serialisierung von Objekten Stefan Szalowski Programmierung II De-/Serialisierung De-/Serialisierung ● Einordnung des Themas: ● Programme verarbeiten Daten – Stefan Szalowski OO-Programme speichern Daten in ...? Programmierung II De-/Serialisierung De-/Serialisierung ● Einordnung des Themas: ● Programme verarbeiten Daten – ● Anforderung an die meisten Programme: – – ● Stefan Szalowski OO-Programme speichern Daten in Objekten. ● Objekt-Attribute stellen die Daten dar ● Zur Laufzeit gespeichert im RAM Daten sollen abgespeichert werden können Daten sollen geladen werden können Wie haben wir das Speichern und Laden von Daten bisher gehandhabt? Programmierung II De-/Serialisierung De-/Serialisierung ● Einordnung des Themas: ● Programme verarbeiten Daten – ● Anforderung an die meisten Programme: – – ● Daten sollen abgespeichert werden können Daten sollen geladen werden können Wie haben wir das Speichern und Laden von Daten bisher gehandhabt? – Stefan Szalowski OO-Programme speichern Daten in Objekten. ● Objekt-Attribute stellen die Daten dar ● Zur Laufzeit gespeichert im RAM Siehe Semesteraufgabe Programmierung II De-/Serialisierung De-/Serialisierung ● Einordnung des Themas: ● Programme verarbeiten Daten – ● Anforderung an die meisten Programme: – – ● Stefan Szalowski Daten sollen abgespeichert werden können Daten sollen geladen werden können Wie haben wir das Speichern und Laden von Daten bisher gehandhabt? – ● OO-Programme speichern Daten in Objekten. ● Objekt-Attribute stellen die Daten dar ● Zur Laufzeit gespeichert im RAM Siehe Semesteraufgabe Es geht auch einfacher, sicherer und einheitlich -> Programmierung II De-/Serialisierung Anwendungen der De-/Serialisierung ● CD-Archiv ● ● ● – Stefan Szalowski Klasse CD hat Attribute: Titel, Label - z.B. Strings Mehrere Tracks - z.B. in Vector gespeichert Wie kann man die komplette CD geschickt speichern? Programmierung II De-/Serialisierung Anwendungen der De-/Serialisierung ● Serialisieren zu Transportzwecken ● Um Objekte anderen zur Verfügung zu stellen – – ● z.B. als Datei ... ... aber auch als Nachricht über eine Netzwerkverbindung Speichern zu Sicherungszwecken ● ● ● Stefan Szalowski Objekt werden gespeichert Programm wird beendet Programm wird mit gespeicherten Daten zu einem späteren Zeitpunkt fortgesetzt Programmierung II De-/Serialisierung Speichern von Objekten ● ● Serialisierung meint die persistente Speicherung von Objekten! Java stellt Klassen und Interfaces zum Serialisieren von Objekten zur Verfügung: ● ● – Klasse java.io.ObjectOutputStream z.B. Methode void writeObject(Object obj) Damit ein Objekt gespeichert werden kann, muss seine Klasse das Interface java.io.Serializable implementieren! Stefan Szalowski Programmierung II De-/Serialisierung Laden von Objekten ● ● Deserialisierung meint das Laden von persistenten Objekten! Java stellt eine Klasse zum Deserialisieren von Objekten zur Verfügung: ● ● Stefan Szalowski Klasse java.io.ObjectInputStream z.B. Methode Object readObject() Programmierung II De-/Serialisierung Format der gespeicherten Daten ● Superklasse von ObjectOutputStream ist java.io.OutputStream ● OutputStream ist ein Byte-Stream. Was heißt das? ● Beispiel-Programme Stefan Szalowski Programmierung II De-/Serialisierung