美文网首页
序列化和反序列化

序列化和反序列化

作者: 後来的後来hugh | 来源:发表于2020-01-13 14:08 被阅读0次

序列化: 就是将内存中的对象转换为字节序列,方便持久化到磁盘或者网络传输。

对象序列化过程可以分为两步:

第一: 将对象转换为字节数组

第二: 将字节数组存储到磁盘

public static byte[] getByteArray4Object(Object obj)throws Exception{

ByteArrayOutputStream bao=new ByteArrayOutputStream();

ObjectOutputStream os=new ObjectOutputStream(bao);

os.writeObject(obj);

return bao.toByteArray();

}

public static void writeByteArrayToFile(String textFilePath,byte[]bytearr)throws Exception{

FileOutputStream fos=new FileOutputStream(new File(textFilePath));

fos.write(bytearr);

}

反序列化 就是将字节序列转换为内存中的对象

可以是文件中的,也可以是网络传输过来的

        // 从文件中反序列化

        FileInputStream fis=new FileInputStream(textFilePath);

      ObjectInputStream ois=new ObjectInputStream(fis);

      User user2= (User) ois.readObject();

      //=========================

    // 字节流中反序列化

        byte[] bytearr=  getByteArray4Object(user);

ByteArrayInputStream bais=new ByteArrayInputStream(bytearr);

ObjectInputStream ois=new ObjectInputStream(bais);

User user2=(User)ois.readObject();

对象的序列化和反序列化主要就是使用ObjectOutputStream 和 ObjectInputStream

相关文章

网友评论

      本文标题:序列化和反序列化

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