Serialisation Test de bon fonctionnement
28/01/2009
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class TestMain {
public static void main(String[] args) {
// construct test object
ObjectA originalObj = new ObjectA();
testSerialization(originalObj);
}
public static void testSerialization (Object originalObj)
{
ObjectA extractedObj = null;
// serialize
ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream oos;
System.out.println("Trying to serialize the object...");
try {
oos = new ObjectOutputStream(out);
oos.writeObject(originalObj);
oos.close();
System.out.println("=>> Success.");
} catch (IOException e) {
System.err.println("=>> Failure: "+e.getMessage());
e.printStackTrace();
return;
}
//deserialize
byte[] pickled = out.toByteArray();
InputStream in = new ByteArrayInputStream(pickled);
ObjectInputStream ois;
System.out.println("Trying to deserialize the object...");
try {
ois = new ObjectInputStream(in);
Object obj = ois.readObject();
extractedObj = (ObjectA) obj;
System.out.println("=>> Success.");
} catch (IOException e) {
System.err.println("=>> Failure: "+e.getMessage());
return;
} catch (ClassNotFoundException e) {
System.err.println("=>> Failure: "+e.getMessage());
e.printStackTrace();
return;
}
// test the result
System.out.println("Inuring that the extracted object is equal to the original one...");
if (!originalObj.equals(extractedObj)) {
System.err.println("=>> Failure: Objects are not equals.");
return;
} else {
System.out.println("=>> Success.");
}
}
}