Java object serialization. This tutorial explains how to use Java serialization and deserialization.
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 that 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
