序列化 和 反序列化

来源:互联网 发布:映客直播网站源码 编辑:程序博客网 时间:2024/06/06 15:03
public static void main(String[] args) {        try {            ByteArrayOutputStream out = new ByteArrayOutputStream();            ObjectOutputStream oos = new ObjectOutputStream(out);            oos.writeObject(new Person("sss", "aaaa"));            byte[] array = out.toByteArray();            System.out.println(array.length + "  " + new String(array));            ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(array));            ois.readObject();//通过读取流 调用从写方法//            Person p = (Person)ois.readObject();//            System.out.println(p);        } catch (Exception e) {            e.printStackTrace();        }    }    static class Person implements Externalizable {        private String name, gender;        public Person() {        }        public Person(String name, String gender) {            this.name = name;            this.gender = gender;        }        @Override        public String toString() {            return "Person{" +                    "name='" + name + '\'' +                    ", gender='" + gender + '\'' +                    '}';        }        @Override        public void writeExternal(ObjectOutput out) throws IOException {            out.writeObject(name);            out.writeObject(gender);        }        @Override        public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {            while (true) {                try {                    //java.io.OptionalDataException 里面没数据会抛这个异常                    System.out.println(in.readObject());                } catch (OptionalDataException e) {                }            }        }    }
0 0
原创粉丝点击