Tuesday, December 1, 2009

Serialized/Deserialized Java Object into/from property file

This tutorial is used to Serialized java object into property file and Deserialized java object from propery file.

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Properties;
/**
*
* @author Sam
*
*/
public class SerializationDeserialization {

String filePath = "C:/Data/object.properties";
/**
* @param args
*/
public static void main(String[] args) {
SerializationDeserialization sd = new SerializationDeserialization();
sd.serializeObjectToPrpertyFile(sd.filePath);
sd.deSerializeObjectFromPrpertyFile(sd.filePath);

}
public void serializeObjectToPrpertyFile(String filePath) {
Properties props = new Properties();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos;
try {
FileOutputStream fos = new FileOutputStream(
filePath);
oos = new ObjectOutputStream(baos);
Person person = new Person("sam");
try {
oos.writeObject(person);
} finally {
oos.close();
}
String object = new String(baos.toByteArray());
props.setProperty(person.getClass().getName(), object);
props.store(fos, "Store Person object");

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

public void deSerializeObjectFromPrpertyFile(String filePath) {
Properties props = new Properties();
ByteArrayInputStream baos;
ObjectInputStream ois;
try {
FileInputStream fis = new FileInputStream(filePath);
props.load(fis);
String object = props.getProperty(Person.class.getName());
baos = new ByteArrayInputStream(object.getBytes());
ois = new ObjectInputStream(baos);
try {
Person person = (Person) ois.readObject();
// System.out.println(person.getName());
} finally {
ois.close();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

}

Object to be serialized
import java.io.Serializable;

public class Person implements Serializable{

private String name;

public Person(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}