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()