Java.io.ObjectInputStream readObjectOverride() Method



Description

The java.io.ObjectInputStream.readObjectOverride() method is called by trusted subclasses of ObjectOutputStream that constructed ObjectOutputStream using the protected no-arg constructor. The subclass is expected to provide an override method with the modifier "final".

Declaration

Following is the declaration for java.io.ObjectInputStream.readObjectOverride() method.

protected Object readObjectOverride()

Parameters

NA

Return Value

This method returns the Object read from the stream.

Exception

  • ClassNotFoundException − Class of a serialized object cannot be found.

  • OptionalDataException − Primitive data was found in the stream instead of objects.

  • IOException − If I/O errors occurred while reading from the underlying stream

Example

The following example shows the usage of java.io.ObjectInputStream.readObjectOverride() method.

package com.tutorialspoint;

import java.io.*;

public class ObjectInputStreamDemo extends ObjectInputStream{

   public ObjectInputStreamDemo(InputStream in) throws IOException {
      super(in);
    }
    
   public static void main(String[] args) {
      String s = "Hello World";
      
      try {
         // create a new file with an ObjectOutputStream
         FileOutputStream out = new FileOutputStream("test.txt");
         ObjectOutputStream oout = new ObjectOutputStream(out);

         // write something in the file
         oout.writeObject(s);
         oout.flush();

         // create an ObjectInputStream for the file we created before
         ObjectInputStreamDemo ois = new ObjectInputStreamDemo(new FileInputStream("test.txt"));

         // read and print an object and cast it as string
         System.out.println("" + (String)ois.readObjectOverride());
      } catch (Exception ex) {
         ex.printStackTrace();
      }
   }
}

Let us compile and run the above program, this will produce the following result −

null
java_io_objectinputstream.htm
Advertisements