ObjectInputStream.GetField readFields()方法

java.io.ObjectInputStream.readFields() 方法从流中读取持久字段并通过名称使其可用。

1 语法

public ObjectInputStream.GetField readFields()

2 参数

3 返回值

GetField对象,该对象表示要反序列化的对象的持久字段。

4 示例 

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * java.io.ObjectInputStream.readFields()方法的例子
 */
import java.io.*;

public class Demo {
    public static void main(String[] args) {
        try {
            // create a new file with an ObjectOutputStream
            FileOutputStream out = new FileOutputStream("test.txt");
            ObjectOutputStream oout = new ObjectOutputStream(out);

            // write something in the file
            oout.writeObject(new Example());
            oout.flush();

            // create an ObjectInputStream for the file we created before
            ObjectInputStream ois = new ObjectInputStream(new FileInputStream("test.txt"));

            // read the object and print the string
            Example a = (Example) ois.readObject();

            // print the string that is in Example class
            System.out.println("" + a.s);

        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    static class Example implements Serializable {
        String s = "Hello World!";

        private String readObject(ObjectInputStream in)
                throws IOException, ClassNotFoundException {

            // call readFields in readObject
            ObjectInputStream.GetField gf = in.readFields();

            // save the string and return it
            return (String) gf.get("s", null);
        }
    }
}

输出结果为:

Hello World!

热门文章

优秀文章