Behandlung von Byte-Strömen

Behandlung von Byte-Strömen

Von den Byte-Streams werden hier nur wenige ausgewählte vorgestellt

Hierarchie Byte-Ströme

Die abstrakte Basisklasse InputStream hat für die Eingabe von Byte-Streams unter anderem die folgenden Methoden:

Die abstrakte Basisklasse OutputStream besitzt ähnliche Methoden

DataInput- und DataOutputStream

Die Klassen DataInputStream und DataOutputStream erlauben das Lesen und Schreiben von Java-Basistypen. Ihre Konstruktoren arbeiten mit den Basisklassen:

Diese Klassen stellen dann typspezifische Methoden mit der folgenden Notation zur Verfügung. Zum Beispiel DataOutputStream:

  • public xxx readxx(): Lies den Typ xxx und gib ihn aus

Serialisierung und Deserialisierung von Objekten

Die Klassen ObjectInputStream und ObjectOutputStream erlauben es Objekte aus dem Hauptspeicher in einen Stream zu schreiben.

Sie wandeln den systemabhängigen Zustand eines Objects in eine neutrale Binärdarstellung in einem Datenstrom um. Diesen Vorgang nennt man Serialisierung in Java. Den umgekehrten Vorgang nennt man Deserialiserung.

Wichtig: Es könne nur Objekte serialiert werden die die Schnittstelle Serializable implementieren. Diese Schnittstelle verlangt es nicht Methoden zu implementieren.

Alle referenzierten, serialisierbaren Objekte werden auch serialisiert.

Möchte man Instanzvariablen nicht serialisieren, muss man sie mit Schlüsselwort transient kennzeichnen.

Die beiden Klassen ObjectInputStream und ObjectOutputStream haben Konstruktoren, die es erlauben aus bzw. in andere Ströme zuschreiben:

In geöffnete Ströme vom Typ ObjectInputStream kann man mit der folgenden Methoden lesen:

Ähnlich kann in ObjectOutputStream mit der folgenden Methode ein Objekt schreiben

 

Stefan Schneider Mon, 02/25/2019 - 09:19