In this tutorial we will discuss about the Java class ObjectOutputStream.
Java ObjectOutputStream
In this tutorial we will discuss about the Java class ObjectOutputStream.
java.io.ObjectOutputStream class is used to write the primitive data types and the graphs of Java objects to the output stream. It writes only those objects to the stream which implements the java.io.Serializable interface. To write the primitive data types to the stream methods of DataOutput can be used. writeObject method can write any object to the stream whether the objects are String or arrays. To read the objects written into the output stream a corresponding ObjectInputStream class is used with the same types and order in which they are written.
Constructors of ObjectOutuptStream
ObjectOutputStream() | This is a default constructor which is implemented by the subclasses in a
way to not have to allocate private data. Syntax : protected ObjectOutputStream() throws IOException, SecurityException |
ObjectOutputStream(OutputStream out) | This is a parameterized constructor which is used to create an object of
ObjectOutputStream that contains the reference of OutputStream where the data to
be written. Syntax :public ObjectOutputStream(OutputStream out) throws IOException |
Methods of ObjectOutputStream
Commonly used methods of ObjectOutputStream
- writeObject(Object obj) : This method is used to write the
object to the output stream.
Syntax : public final void writeObject(Object obj) throws IOException
- close() : This method is used to close the streams and is
called for releasing the resources associated with the stream.
Syntax : public void close() throws IOException
- flush() : This method is used to flush the stream.
Syntax : public void flush() throws IOException
- replaceObject(Object obj) : This method is used to replace
the one object with another when serializing the object.
Syntax : protected Object replaceObject(Object obj) throws IOException
- reset() : This method is used to reset all the objects
which are already written to the stream.
Syntax : public void reset() throws IOException
- write(byte[] buf) : This method is used to write an array
of bytes to the output stream.
Syntax : public void write(byte[] buf) throws IOException
- write(byte[] buf, int off, int len) : This method is used
to write a specified length of bytes of a specified array started from the
offset 'off'.
Syntax : public void write(byte[] buf, int off, int len) throws IOException
- write(int val) : This method is used to write a byte to the
output stream.
Syntax : public void write(int val) throws IOException
- writeBoolean(boolean val) : This method is used to write
boolean to the output stream.
Syntax : public void writeBoolean(boolean val) throws IOException
- writeByte(int val) : This method is used to write 8 bit
byte to the output stream.
Syntax : public void writeByte(int val) throws IOException
- writeBytes(String str) : This method is used to write
string as a sequence of bytes to the output stream.
Syntax : public void writeBytes(String str) throws IOException
- writeChar(int val) : This method is used to write 16 bit
char to the output stream.
Syntax : public void writeChar(int val) throws IOException
- writeChars(String str) : This method is used to write
string as a sequence of char to the output stream.
Syntax : public void writeChars(String str) throws IOException
- writeDouble(double val) : This method is used to write 64
bit double to the output stream.
Syntax : public void writeDouble(double val) throws IOException
- writeFloat(float val) : This method is used to write 32 bit
float to the output stream.
Syntax : public void writeFloat(float val) throws IOException
- writeInt(int val) : This method is used to write a 32 bit
int to the output stream.
Syntax : public void writeInt(int val) throws IOException
- writeLong(long val) : This method is used to write a 64 bit
long to the output stream.
Syntax : public void writeLong(long val) throws IOException
- writeShort(int val) : This method is used to write a 16 bit
short to the output stream.
Syntax : public void writeShort(int val) throws IOException
- writeUTF(String str) : This method is used to write the
string in modified UTF-8 format.
Syntax : public void writeUTF(String str) throws IOException
Example
An example is being given here which will demonstrate you about how to use the ObjectOutuptStream class to write the object to the output stream. In this example at first I have created a Java class which writes the objects to the output stream then created a corresponding Java class which will read the objects from the stream.
Source Code
ObjectOutputStreamExample.java
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; public class ObjectOutputStreamExample { public static void main(String args[]) { ObjectOutputStream oos = null; try { FileOutputStream fos = new FileOutputStream("employee.txt"); oos = new ObjectOutputStream(fos); oos.writeObject("Shashi"); oos.writeObject("Content Writer"); oos.writeInt(20000); oos.writeObject("Amit"); oos.writeObject("Content Writer"); oos.writeInt(18000); System.out.println(); System.out.println("objects written successfully"); } catch (FileNotFoundException fex) { System.out.println(fex); } catch (Exception ex) { System.out.println(ex); } finally { try { if (oos != null) { oos.close(); } } catch (Exception ex1) { System.out.println(ex1); } } } }
ReadObjectInputStream.java
import java.io.*; public class ReadObjectInputStream { public static void main(String args[]) { ObjectInputStream ois = null; try { FileInputStream fis = new FileInputStream("employee.txt"); ois = new ObjectInputStream(fis); String sh = (String) ois.readObject(); String cw = (String) ois.readObject(); int sal = ois.readInt(); String am = (String) ois.readObject(); String cw1 = (String) ois.readObject(); int sal1 = ois.readInt(); System.out.println(); System.out.println("Name \t"+"Department \t"+"Salary"); System.out.println(sh+"\t"+cw+"\t"+sal); System.out.println(am+"\t"+cw1+"\t"+sal1); } catch (EOFException ex) { //This exception will be caught when EOF is reached System.out.println("End of file reached."); } catch (ClassNotFoundException ex) { System.out.println(ex); } catch (Exception ex) { System.out.println(ex); } finally { try { if (ois != null) { ois.close(); } } catch (Exception ex) { System.out.println(ex); } } } }
Output
First compile and execute the ObjectOutputStreamExample.java which will write the objects to the output stream as follows :
Then Compile and execute the ReadObjectInputStream.java which will read the objects written to the output stream then the output will be as follows :