美文网首页后端开发
【二】序列化与反序列化初步实践笔记

【二】序列化与反序列化初步实践笔记

作者: 吴里庆庆 | 来源:发表于2018-02-04 22:32 被阅读0次

序列化与反序列化

1.Serializable

  • 类实现 Serializable
  • 保存数据到本地磁盘
        ObjectOutputStream oos= new ObjectOutputStream(new FileOutputStream("D:/test/wuqingvika0204.dat"));
        oos.writeObject(person);
        oos.close();
    
  • 从本地加载并读取
       ObjectInputStream ois=new ObjectInputStream(new FileInputStream("D:/test/wuqingvika0204.dat"));
       Person person=(Person)ois.readObject();
       ois.close();
       return person;
    
  • 不想被序列化的字段如何处理:
    • 采用transient关键字来修饰字段即可。但它仅与Serializable配合使用。

2.Externalizable

  • 类实现 Externalizable
  • 需要实现两个方法:
       @Override
           public void writeExternal(ObjectOutput out) throws IOException {
               out.writeObject(this.getName());
               out.writeInt(this.getAge());
           }
       
           @Override
           public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
               this.setName((String)in.readObject());//这里位置不能颠倒
               this.setAge( in.readInt());
           }
    
  • 其余序列化到本地磁盘和加载数据同上。
  • 这里说下我遇到的坑:读取时候需要与写入字段顺序位置一致。不然报错。
  • 另外,transient在这里使用无效。

相关文章

网友评论

    本文标题:【二】序列化与反序列化初步实践笔记

    本文链接:https://www.haomeiwen.com/subject/jqmvzxtx.html