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

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

作者: 吴里庆庆 | 来源:发表于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