ObjectInputStream
The Java ObjectInputStream
class (java.io.ObjectInputStream
) enables you to read Java objects from an InputStream
instead of just raw bytes. You wrap an InputStream
in a ObjectInputStream
and then you can read objects from it. Of course the bytes read must represent a valid, serialized Java object. Otherwise reading objects will fail.
Normally you will use the ObjectInputStream
to read objects written (serialized) by a Java ObjectOutputStream
. You will see an example of that later.
ObjectInputStream Example
Here is a Java ObjectInputStream
example:
For this ObjectInputStream
example to work the object you read must be an instance of MyClass
, and must have been serialized into the file "object.data" via an ObjectOutputStream
.
Before you can serialize and de-serialize objects the class of the object must implement java.io.Serializable
. For more info, see Java Serializable.
Using an ObjectInputStream With an ObjectOutputStream
I promised earlier to show you an example of using the Java ObjectInputStream
with the ObjectOutputStream
. Here is that example:
This example first creates an ObjectOutputStream
connected to a FileOutputStream
. Then it creates a Person
object and writes it to the ObjectOutputStream
, and then closes the ObjectOutputStream
.
Then the example creates an ObjectInputStream
connected to the same file the ObjectOutputStream
was connected to. The example then reads in an object from the ObjectInputStream
and casts it to a Person
object. After that the ObjectInputStream
is also closed, and the values read into the Person
object are printed to System.out
.
The output printed from running this example should be:
Last updated