import java.io.*; import java.util.*; import utilities.*; import utilities.files.*; public class CustomSerialization extends Object implements Serializable { public int testField; //------------------------------------------------------------------- // CustomSerialization Constructor //------------------------------------------------------------------- public CustomSerialization(int number) { this.testField = number; } //------------------------------------------------------------------- // Custom writeObject/readObject methods. //------------------------------------------------------------------- private void writeObject(ObjectOutputStream out) throws IOException { long timestamp; out.defaultWriteObject(); // add a timestamp to every CustomSerialization object serialized timestamp = System.currentTimeMillis(); out.writeLong(timestamp); System.out.println("Object being serialized on " + new Date(timestamp)); } //------------------------------------------------------------------- private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { long timestamp; in.defaultReadObject(); // read back the serialization timestamp and display it timestamp = in.readLong(); System.out.println("Object was serialized on " + new Date(timestamp)); } //------------------------------------------------------------------- // Overridden Object.toString() //------------------------------------------------------------------- public String toString() { return new Integer(testField).toString(); } //------------------------------------------------------------------- // CustomSerialization serialization test //------------------------------------------------------------------- public static void main (String[] args) { CustomSerialization object; object = new CustomSerialization(65535); System.out.println("Serializing object.."); FileKit.saveObject(object, "custom.ser"); // let garbage collector wipe our object away object = null; // waste some random amount of time. MiscKit.delay( (int) (Math.random()*10000)); // read serialized object back and display its state System.out.println("Time now: " + new Date()); System.out.println("Deserializing object.."); object = (CustomSerialization) FileKit.loadObject("custom.ser"); System.out.println("Custom object: " + object); } } // End of Class CustomSerialization