序列化和反序列化

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

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

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

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

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

你可能感兴趣的:(序列化和反序列化)