Reconstructing an externalizable object : Serialization « File Input Output « Java






Reconstructing an externalizable object

Reconstructing an externalizable object
      

// : c12:Blip3.java
// Reconstructing an externalizable object.
// From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
// www.BruceEckel.com. See copyright notice in CopyRight.txt.

import java.io.Externalizable;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;

public class Blip3 implements Externalizable {
  private int i;

  private String s; // No initialization

  public Blip3() {
    System.out.println("Blip3 Constructor");
    // s, i not initialized
  }

  public Blip3(String x, int a) {
    System.out.println("Blip3(String x, int a)");
    s = x;
    i = a;
    // s & i initialized only in nondefault constructor.
  }

  public String toString() {
    return s + i;
  }

  public void writeExternal(ObjectOutput out) throws IOException {
    System.out.println("Blip3.writeExternal");
    // You must do this:
    out.writeObject(s);
    out.writeInt(i);
  }

  public void readExternal(ObjectInput in) throws IOException,
      ClassNotFoundException {
    System.out.println("Blip3.readExternal");
    // You must do this:
    s = (String) in.readObject();
    i = in.readInt();
  }

  public static void main(String[] args) throws IOException,
      ClassNotFoundException {
    System.out.println("Constructing objects:");
    Blip3 b3 = new Blip3("A String ", 47);
    System.out.println(b3);
    ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream(
        "Blip3.out"));
    System.out.println("Saving object:");
    o.writeObject(b3);
    o.close();
    // Now get it back:
    ObjectInputStream in = new ObjectInputStream(new FileInputStream(
        "Blip3.out"));
    System.out.println("Recovering b3:");
    b3 = (Blip3) in.readObject();
    System.out.println(b3);
  }
} ///:~


           
         
    
    
    
    
    
  








Related examples in the same category

1.Serialization with ObjectInputStream and ObjectOutputStream
2.Object SerializationObject Serialization
3.Serial Demo
4.Create a serialized output file
5.Simple use of Externalizable and a pitfallSimple use of Externalizable and a pitfall
6.Serializable
7.Serializer class
8.This program shows how to use getSerialVersionUID
9.Working with Serialization
10.Assists with the serialization process and performs additional functionality based on serialization.
11.Computes all the class serialVersionUIDs under the jboss home directory.
12.Serializable Enumeration
13.Serialization Utilities
14.This program demonstrates the transfer of serialized objects between virtual machines
15.A class whose clone method uses serialization
16.Writes a serialized version of obj to a given file, compressing it using gzip.
17.Reads a serialized object from a file that has been compressed using gzip.
18.Serialized File Util
19.Serializes an object to a file, masking out annoying exceptions.