概述
@风吹
序列化技术
在了解此技术前,先来回忆一下实例化对象的四种方式都有哪些
- 运用new()关键字
- 运用 Object 对象自带方法 .clone()方法
- 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
- 运用反序列化技术,调用java.io.ObjectInputStream对象的 readObject()方法。
其中第四条就是咱们今天需要了解的技术!
使用场景:
- 当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。
- 把内存中的对象进行输出流操作保存在永久性存储景介质中,即在其它介质中存储对象的副本。之后就算是对象在内存中被销毁,我们都可以通过对象流的操作把介质中存储的对象还原到内存中。
序列化
序列化的过程:将java对象转换为字节序列的过程
只有实现了Serializable接口的类的对象才能进行对象序列化。
class A implements Serializable {
public String a;
public static String b;
public transient String c;
}
序列化使用ObjectOutputStream字节流,通过writeObject(Object)方法就可以将实现对象写出,将对象转为字节序列存入文件中
A aa = new A();
aa.a = "12";
aa.b = "123";
aa.c = "1234";
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("C:\a.txt"));
oos.writeObject(aa);
oos.close();
反序列化
反序列化(对象输入流):把字节序列恢复为Java对象的过程
反序列化使用ObjectInputStream字节流,通过readObject,从流中读取对象将字节序列转化为java对象
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("C:\a.txt"));
A ab = (A) ois.readObject();
System.out.println(ab.a + ab.b + ab.c);
ois.close();
最后
以上就是时尚皮卡丘为你收集整理的序列化和反序列化序列化技术的全部内容,希望文章能够帮你解决序列化和反序列化序列化技术所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复