FileDocCategorySizeDatePackage
Nonexternsuper.javaAPI DocExample2851Wed Apr 19 11:21:18 BST 2000None

Nonexternsuper

public class Nonexternsuper 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 NOT externalizable. How to Run: Compile the file: javac Nonexternsuper.java Then run: java Nonexternsuper.java This should print out a book object before and after serialization. Tested and compiled on JDK 1.1 & 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();