Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Java Grundkurs 3: Generische Programmierung, Datenströme, Datumsrechnung

ObjectOutputStream und ObjectInputStream

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Lassen Sie sich vom Trainer zeigen, wie Sie ein Objekt speichern und wieder einlesen können. Hierbei stellt er Ihnen die Klassen ObjectInputStream und ObjectOutputStream vor.

Transkript

In diesem Video zeige ich Ihnen, wie Sie ein Objekt mit der Objekt Stream API abspeichern und auch wieder einlesen können. Die einzige Voraussetzung war ja, dass das Interface Serializable implementiert wird. Und das haben wir ja bei der Klasse Katze ja so getan. Und jetzt wechsle ich in die Klasse App, den dort brauchen wir nun eine Variable des Typs Object Output Stream. Die Variable nenne ich Out. Und dann initialisiere ich die Variable Out mit new ObjectOutputStream und der Konstruktor der Klasse ObjectOutputStream erwartet von mir einen OutputStream, der ihm anzeigt, wohin die Reise mit dem Datenstrom gehen soll. Hierfür kann ich einen FileOutputStream wählen. Also FileOutputStream. Und jetzt muss ich auch noch angeben, wie die Datei heißt. Und die Datei nenne ich einfach Katze.dat für Data oder Daten und das FileOutputStream Objekt umfasse ich mit einem Buffered Output Stream, damit die Speicherung beschleunigt wird, denn hierdurch reduziere ich die Anzahl der Zugriffe auf das Dateisystem. Also ich rücke das Ganze mal eine Zeile hinunter, damit der Quelltext besser lesbar ist und jetzt schreibe ich New Buffered, Steuerung gedrückt halten, dann drücke ich auf die Leertaste, dann erschient dieses Kontextmenü und dort kann ich dann eines von diesen beiden Konstruktoren vom BufferedOutputStream auswählen. Ich wähle das Erste und dem BufferedOutputStream überreiche ich dann die Konstruktor von FileOutputStream. Und jetzt brauche ich ja auch noch ein Objekt der Katze, die ich abspeichern möchte. Ich deklariere also eine Variable des Typs Katze. Die Variable nenne ich Katze und diese Variable initialisiere ich über new Katze und jetzt weise ich der Variablen auch noch zwei Werte zu, set Groesse(0,51) in Metern und katze.setGewicht (6,1) in Kilos. So und jetzt haben wir ein Katzenobjekt und eine Variable, die auf das Katzenobjekt referenziert. Und um das Objekt in den Ausgabestrom zu schreiben verwende ich die Methode Write Object, der Klasse ObjectOutputStream. Ich verwende also die Variable Out, füge den Punkt Operator hinzu, rufe die Methode writeObject auf und übergebe die Variable Katze, damit diese dann in den Ausgabestrom geschrieben wird. Und ganz zum Schluss schließe ich den Ausgabestrom, indem ich die Methode Close aufrufe. Weil die verwendeten Methoden IO Exceptions auslösen, füge ich der Main Methode und dem Konstruktor den Ausdruck Throws IO Exception zu. Hierbei lasse ich mir von Eclipse helfen. Add Throws Declaration. Und auch hier oben, dadurch umgehe ich unser Mini Beispiel, die Behandlung der Fehlerereignisse. Jetzt habe ich das Ganze abgespeichert und führe das Programm einmal aus. Und dann Refreshe ich das Projekt und dies hier ist jetzt unsere serialisierte Katze auf der Festplatte. Hier klicke ich einmal doppelt drauf, dann sehen Sie den Inhalt, den mir Java in diese Datei Katze.dat hineingeschrieben hat. Und jetzt zeige ich Ihnen auch noch, wie man das gespeicherte Objekt wieder einliest. Hierfür brauchen wir zunächst eine Variable des Typs ObjectInputStream und die Variable nenne ich in und hier gehe ich genauso vor wie oben. Zunächst initialisiere ich die Variable mit new ObjectInputStream und auch dort werde ich jetzt eine Puffer Klassebenutzen, nämlich new BufferedInputStream, um die Anzahl der Zugriffe auf den Datenträger zu reduzieren Und die Zieldatei, die gebe ich bei der Klasse new FileInputStream an. Und diese nenne ich dann Katze.dat Die möchte ich ja einlesen. Und jetzt lese ich die Datei ein. Hierfür brauche ich die Methode Read Objects Mit der Methode Read Object der Klasse Object Input Stream kann das Objekt dann nämlich wieder eingelesen werden. Also in.readObject und das Ergebnis weise ich einem Objekt zu. Die Methode readObject löst eine ClassNotFoundException aus. Die werde ich nun auch nicht behandeln, sondern lediglich hier oben bei der Throws Anweisung hinzufügen und mir bei Eclipse helfen lassen. So jetzt habe ich alle Exceptions weitergeleitet. Das reicht unser kleines Beispiel. So und abschließend werde ich die Attribute der eingelesenen Katze nochmal ausgeben, damit wir dort kontrollieren könne, was eigentlich nun passiert ist. Also If Object != null, dann, Ich werde zunächst mal, bevor ich das Objekt einlesen kann, die Close Methode aufrufen von in, also vom Eingabe-Strom. Denn ansonsten ist das Objekt noch nicht da. So und jetzt kann ich mir eine importierte Katze besorgen und zwar werde ich das Objekt zu einer Katze casten müssen. So und jetzt kann ich dann anschließend die Größe und das Gewicht ausgeben von der Katze. Also importierteKatze.getGroesse und dann mit System Out Print Line wird sie dann ausgegeben und das Ganze mache ich dann auch noch mit dem Gewicht der Katze. So das Programm speichere ich einmal ab und führe es aus und dann sehen Sie hier unten, dass mir die Groesse und das Gewicht der Klasse korrekt angezeigt wird. In diesem Video habe ich Ihnen gezeigt, wie Sie ein Objekt abspeichern und wieder einlesen können. Hierbei habe ich Ihnen die Klassen Object Input Stream und Object Output Stream vorgestellt.

Java Grundkurs 3: Generische Programmierung, Datenströme, Datumsrechnung

Steigen Sie tiefer in die Java-Programierung ein und lernen Sie den Umgang mit generischen Typen, Lamda-Ausdrücken, DAtenströmen und mit Datums- und Zeitberechnung.

5 Std. 24 min (47 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:09.10.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!