序列化: 就是将内存中的对象转换为字节序列,方便持久化到磁盘或者网络传输。
对象序列化过程可以分为两步:
第一: 将对象转换为字节数组
第二: 将字节数组存储到磁盘
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
网友评论