Java ObjectInputStream .resolveClass (ObjectStreamClass desc)

Syntax

ObjectInputStream.resolveClass(ObjectStreamClass desc) has the following syntax.

protected Class <?> resolveClass(ObjectStreamClass desc)    throws IOException ,     ClassNotFoundException

Example

In the following code shows how to use ObjectInputStream.resolveClass(ObjectStreamClass desc) method.


/*www  .  j a  v a 2 s.  co m*/

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.ObjectStreamClass;

public class Main extends ObjectInputStream {

  public Main(InputStream in) throws IOException {
    super(in);
  }

  public static void main(String[] args) throws Exception {

    String s = "Hello World from java2s.com";

    FileOutputStream out = new FileOutputStream("test.txt");
    ObjectOutputStream oout = new ObjectOutputStream(out);

    // write something in the file
    oout.writeUTF(s);
    oout.flush();
    oout.close();
    // create an ObjectInputStream for the file we created before
    Main ois = new Main(new FileInputStream("test.txt"));

    // read and print an object and cast it as string
    System.out.println((String) ois.readUTF());

    // get the class for string and print the name
    ObjectStreamClass streamClass = ObjectStreamClass.lookup(Integer.class);
    System.out.println(ois.resolveClass(streamClass).getName());
    ois.close();
  }
}

The code above generates the following result.