Open In App

ObjectInputStream defaultReadObject() method in Java with examples

Last Updated : 05 Jun, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

The defaultReadObject() method of the ObjectInputStream class in Java is used to read the non-static and non-transient fields of the current class from this stream.

Syntax:

public void defaultReadObject()

Parameters: This method does not accept any parameter.

Return Value: This method returns the value that has been read.

Errors and Exceptions: The function throws three exceptions which is described below:

  • ClassNotFoundException: The exception is thrown if the class of a serialized object could not be found.
  • IOException: The exception is thrown if an I/O error has occurred.
  • NotActiveException: The exception is thrown if the stream is not currently reading objects.

Below program illustrate the above method:

Program 1:

Java




// Java program to illustrate
// the above method
  
import java.io.*;
  
public class GFG {
    public static void main(String[] args)
    {
        try {
            // create a new file
            // with an ObjectOutputStream
            FileOutputStream out
                = new FileOutputStream("Shubham.txt");
            ObjectOutputStream out1
                = new ObjectOutputStream(out);
  
            // write
            out1.writeObject(new solve());
  
            // Flushes the stream
            out1.flush();
  
            // create an ObjectInputStream
            // for the file
            ObjectInputStream example
                = new ObjectInputStream(
                    new FileInputStream("Shubham.txt"));
  
            // Read from the stream
            solve ans = (solve)example.readObject();
            System.out.println(ans.str);
        }
  
        catch (Exception ex) {
            ex.printStackTrace();
        }
    }
  
    static class solve implements Serializable {
        String str = "Geeksforgeeks";
  
        private void readObject(ObjectInputStream res)
            throws IOException,
                   ClassNotFoundException
        {
  
            // By using defaultReadObject() method is
            // to read non-static fields of the present
            // class from the ObjectInputStream
            res.defaultReadObject();
        }
    }
}


Output:

Program 2:

Java




// Java program to illustrate
// the above method
  
import java.io.*;
  
public class GFG {
    public static void main(String[] args)
    {
        try {
            // create a new file
            // with an ObjectOutputStream
            FileOutputStream out
                = new FileOutputStream("Shubham.txt");
            ObjectOutputStream out1
                = new ObjectOutputStream(out);
  
            // write
            out1.writeObject(new solve());
  
            // Flushes the stream
            out1.flush();
  
            // create an ObjectInputStream
            // for the file
            ObjectInputStream example
                = new ObjectInputStream(
                    new FileInputStream("Shubham.txt"));
  
            // Read from the stream
            solve ans = (solve)example.readObject();
            // System.out.println(ans.str);
            System.out.println(ans.in);
        }
  
        catch (Exception ex) {
            ex.printStackTrace();
        }
    }
  
    static class solve implements Serializable {
  
        // String str = "Geeksforgeeks";
        Integer in = new Integer(112414);
  
        private void readObject(ObjectInputStream res)
            throws IOException,
                   ClassNotFoundException
        {
            // By using defaultReadObject() method is
            // to read non-static fields of the present
            // class from the ObjectInputStream
            res.defaultReadObject();
        }
    }
}


Output:

Reference:

https://docs.oracle.com/javase/10/docs/api/java/io/ObjectInputStream.html#defaultReadObject()



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads