FileDocCategorySizeDatePackage
Savesuper.javaAPI DocExample2779Wed Apr 19 11:21:16 BST 2000None

Savesuper

public class Savesuper extends Object
When using the Externalizable Interface, an externalizable object must implement a writeExternal method to save the state of the object. It must also explicitly coordinate with its supertype to save its state. This simple example shows how to do this for an object whose supertype is also externalizable. How to Run: Compile the file: javac Savesuper.java Then run: java Savesuper.java This should print out a book object before and after serialization. Tested and compiled on JDK 1.1 & the Java 2 SDK, v1.2

Fields Summary
Constructors Summary
Methods Summary
public static voidmain(java.lang.String[] args)
Create an Book (subclass of reading material) object, serialize it, deserialize it and see that they are the same. So, basically test that this Externalizable example's works


	// create a Book object 
	Book bookorg = new Book(100, "How to Serialize", true, "R.R", "Serialization", 97);
	Book booknew = null;
	
	//serialize the book
	try {
	    FileOutputStream fo = new FileOutputStream("tmp");
	    ObjectOutputStream so = new ObjectOutputStream(fo);
	    so.writeObject(bookorg);
	    so.flush();
	} catch (Exception e) {
	    System.out.println(e);
	    System.exit(1);
	}

	// de-serialize the Book
	try {
	    FileInputStream fi = new FileInputStream("tmp");
	    ObjectInputStream si = new ObjectInputStream(fi);  	    
	    booknew = (Book) si.readObject();
	}
	catch (Exception e) {
	    System.out.println(e);
	    System.exit(1);
	}

	/* 
	 * Print out the original and new book information
	 * It should be the same if we did everything correctly!
	 */
	System.out.println();
	System.out.println("Printing original book...");
	System.out.println(bookorg);
	System.out.println("Printing new book... ");
	System.out.println(booknew);	
	System.out.println("Both original and new should be the same!");
	System.out.println();