- Serialization is the process of saving the objects loaded in the memory to corresponding streams
- e.g Saving the objects to file system.
- Deserialization is the process of loading the saved data to corresponding objects.
- We have already discussed about the basics of serialization and deserialization process.
What Serializable interface?
- Serializable is a marker interface.
- Serializable interface does not contain any method.
- Serializable interface is used to inform the JVM that class wants serialization feature.
public interface Serializable { } |
Serialize the object or pojo in java using Serializable interface
1.) Person class or POJO class:
- We would like to serialize the Person class.
- The person class should implement the Serializable interface.
- We will use following classes for Serialization & Deserialization:
- ObjectOutputStream will be used to serialize person object.
- ObjectInputStream will be used to deserialize person object.
import java.io.Serializable; public class Person implements Serializable { private static final long serialVersionUID = 1L; public String firstName; public String lastName; public int age; public String contact; public Person(String firstName, String lastName, int age, String contact) { this .firstName = firstName; this .lastName = lastName; this .age = age; this .contact = contact; } public String toString() { return "[" + firstName + " " + lastName + " " + age + " " +contact + "]" ; } } |
2.) SerializeDeserialize class:
We have written couple of methods to serialize and deserialize person objects.
- serialize method : serialize method will save person object to “savePerson.txt” file.
- serialize method will prints the serialized person object.
- deserialize method: deserialize method will deserialize person object saved in savePerson.txt file
- deserialize method, prints the deserialized person object.

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class SerializeDeserialize { public static void serialize() throws IOException { Person person = new Person( "Mike" , "harvey" , 34 , "001894536" ); FileOutputStream output = new FileOutputStream( new File( "savePerson.txt" )); ObjectOutputStream outputStream = new ObjectOutputStream(output); outputStream.writeObject(person); output.close(); outputStream.close(); System.out.println( "Serialized the person object : " +person); } public static void deSerialize() throws IOException, ClassNotFoundException { FileInputStream inputStream = new FileInputStream( new File( "savePerson.txt" )); ObjectInputStream objectInputStream = new ObjectInputStream(inputStream); Person person = (Person) objectInputStream.readObject(); System.out.println( "Deserialize the person object :" + person); objectInputStream.close(); inputStream.close(); } public static void main(String[] args) throws IOException, ClassNotFoundException { serialize(); deSerialize(); } } |
Output – Serialize & deserialize person object or POJO in java
Serialized the person object : [Mike harvey 34 001894536] Deserialize the person object :[Mike harvey 34 001894536] |
Download code – Serialization & deserialization object in java