Serialize an ObjectTag(s): Language
To serialize an object, it must implements the Serializable interface. The object needs 2 functions with these signatures
private void writeObject(java.io.ObjectOutputStream out)
throws IOException
private void readObject(java.io.ObjectInputStream in)
throws IOException, ClassNotFoundException;
In the following snippet, we serialize an ArrayList to a file and we reload it.
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
public class SerializeDemo {
@SuppressWarnings("unchecked")
public static void main(String args[]) throws IOException, ClassNotFoundException {
ArrayList <String> arraySerialized = new ArrayList<String>();
arraySerialized.add("element 1");
arraySerialized.add("element 2");
arraySerialized.add("element 3");
arraySerialized.add("element 4");
arraySerialized.add("element 5");
System.out.println("ArrayList to be serialized : " + arraySerialized );
System.out.println("serializing the array");
ObjectOutputStream oos = null;
try {
FileOutputStream fout = new FileOutputStream("c:\\temp\\thearraylist.dat");
oos = new ObjectOutputStream(fout);
oos.writeObject(arraySerialized);
}
finally {
if (oos!=null) oos.close();
}
// deserialize the ArrayList
ArrayList <String> arrayUnserialized = new ArrayList<String>();
System.out.println("unserializing the array");
ObjectInputStream ois = null;
try {
FileInputStream fin = new FileInputStream("c:\\temp\\thearraylist.dat");
ois = new ObjectInputStream(fin);
arrayUnserialized = (ArrayList) ois.readObject();
ois.close();
}
finally {
if (ois!=null) ois.close();
}
System.out.println("ArrayList unserialized : " + arrayUnserialized);
}
}
Note : See this How-to to serialize using XML format.
If you need to serialize and manipulate huge objects, take a look at this open-source project.
joafip( java data object persistence in file ) at http://joafip.sourceforge.net.
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com