Java object serialization. This tutorial explains how to use Java serialization and de-serialization.
1. Java Serialization
Via Java Serialization you can stream your Java object to a
sequence of
byte and restore these objects from this stream of
bytes. To make a
Java object serializable you implement the
java.io.Serializable
interface. This is only a marker interface which tells the
Java platform
that the object is serializable.
Certain system-level classes such as
Thread
, OutputStream
and its subclasses, and
Socket
are not serializable. If you serializable class contains such objects,
it must mark then as "transient".
2. Example
Create a Java project called "de.vogella.java.serilization". Create the following Java object called Person.
package de.vogella.java.serilization;
import java.io.Serializable;
public class Person implements Serializable {
private String firstName;
private String lastName;
// stupid example for transient
transient private Thread myThread;
public Person(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
this.myThread = new Thread();
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override
public String toString() {
return "Person [firstName=" + firstName + ", lastName=" + lastName
+ "]";
}
}
The following code example show you how you can serializable and de-serializable this object.
package de.vogella.java.serilization;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class Main {
public static void main(String[] args) {
String filename = "time.ser";
Person p = new Person("Lars", "Vogel");
// save the object to file
FileOutputStream fos = null;
ObjectOutputStream out = null;
try {
fos = new FileOutputStream(filename);
out = new ObjectOutputStream(fos);
out.writeObject(p);
out.close();
} catch (Exception ex) {
ex.printStackTrace();
}
// read the object from file
// save the object to file
FileInputStream fis = null;
ObjectInputStream in = null;
try {
fis = new FileInputStream(filename);
in = new ObjectInputStream(fis);
p = (Person) in.readObject();
in.close();
} catch (Exception ex) {
ex.printStackTrace();
}
System.out.println(p);
}
}
3. Links and Literature
Nothing listed.
3.1. vogella Java example code
If you need more assistance we offer Online Training and Onsite training as well as consulting