What is Serialization In Java?
Serialization in java is a mechanism to convert an object into a byte stream so that we can send over the network or save it as file or store into a database. Java serialization was introduced in JDK 1.1 and it is the most important feature of java.
Deserialization in java is just opposite of serialization in java.
The main purpose of serialization in java is to converting an state of an object into a stream of bytes.
Here we will learn serialization and deserialization in java with example so that you can understand better.
Serialization is used in RMI, JPA, Hibernate etc.
(1) public final void readObject()throws IOException, ClassNotFoundException
This method read the object from the input stream.
(2) public void close()throws IOException
This method close object input stream.
Deserialization in java is just opposite of serialization in java.
The main purpose of serialization in java is to converting an state of an object into a stream of bytes.
Here we will learn serialization and deserialization in java with example so that you can understand better.
Serialization is used in RMI, JPA, Hibernate etc.
Advantages of Serialization In Java
- It is mainly used to travel the object on the network.
- The entire process is JVM independent because object serialized on one platform and deserialized on an entirely different platform.
java.io.Serializable Interface
A class must implement java.io.Serializable interface to be eligible for serialization.
For example:
import java.io.Serializable;
class Student implements Serializable
class Student implements Serializable
{
int rollno;
String name;
Student(int rollno, String name)
{
this.rollno = rollno;
this.name = name;
}
}
In the above example, Student class implements Serializable interface . Now the object of the Student class can be converted into stream.
In java ObjectOutputStream and ObjectInputStream both are high-level stream that contains methods for serialization and deserialization of an object.
In java ObjectOutputStream and ObjectInputStream both are high-level stream that contains methods for serialization and deserialization of an object.
Java ObjectOutputStream Class
It is used to write primitive data types and objects to an output stream. Only objects that supports Serializable interface.
Methods of ObjectOutputStream
There are some methods of this class.
(1) public final void writeObject(Object obj)throws IOException
This method writes the specified object to the ObjectOutputStream.
(2) public void flush() throw IOException
This method flushes the current output stream.
(3) public void close() throw IOException
This method closes the current output stream.
Java Serialization Example
In this class, we are going to serialize the object of Student class by the help of writeObject() method of ObjectOutputStream class because it provides the functionality to serialize the object. We will save the data of an object in a particular file name anu.txt.
import java.io.Serializable;
import java.io.*;
import java.io.*;
class Sample
{
public static void main(String args[])throws Exception
{
Student s = new Student(32, "amir");
FileOutputStream fout = new FileOutputStream(" anu.txt ");
ObjectOutputStream out = new ObjectOutputStream(fout);
out.writeObject(s);
out.flush();
System.out.println("task complete");
}
}
Output: task complete
Output: task complete
Deserialization In Java
Deserialization in java is used to converting stream to object. Java deserialization is opposite of serialization.
Java ObjectInputStream Class
This class is used to deserialized the object of a class.
Methods of ObjectInputStream
There are some methods of output stream class which will help in deserializing an object.
This method read the object from the input stream.
(2) public void close()throws IOException
This method close object input stream.
Java Deserialization Example
This is simple example of deserialization of an object.
import java.io.Serializable;
import java.io.*;
class Sample1
{
public static void main(String args[])throws Exception
{
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("anu.txt"));
Student ss = (Student)ois.readObject();
Student ss = (Student)ois.readObject();
System.out.println(ss.rollno+" "+ss.name);
ois.close();
ois.close();
}
}
Output: 32 amir
Output: 32 amir
nice article.thank you
ReplyDeletejavascodegeeks.net