Externalizable:
Java facilities for serialization and deserialization have been designed so that much of the work to save and restore the state of an object occurs automatically. Moreover there are cases in that the programmer might require having control over these processes. For instance, it might be desirable to used compression or encryption methods. A Externalizable interface is designed for these conditions.
The Externalizable interface declares these two methods:
void readExteranal (ObjectInput in Stream)
throws IOException, ClassNotFountExpecption
void writeExternal (ObjectOutput outStream)
throws IOException
Within methods, inStream is the byte steam from that the object is to be read, and outStream is the byte stream to that the object is to be written.