- 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