Java序列化与反序列化

来源:互联网 发布:深圳网络教育哪家好 编辑:程序博客网 时间:2024/05/01 13:52

1. 常见的Java程序中,对象的生命周期也就是程序的生命周期。当程序结束时,对象也被释放掉。但有时候我们希望将对象的状态保存下来,在程序下次运行的时候继续使用。 为了达到这一目的,我们常用的方法是采用数据库或是文件存储对象状态。但我们还有更简单的方法,那就是Java的序列化。

2.对象序列化使得我们可以将对象转换成字节码,保存到文件或是别的地方,下次需要用到的时候,根据字节码就可以还原对象(这一点与Hibernate很相似,所以我们称序列化具有“轻量级持久性”)。更好的是,对象序列化不仅保存了对象的“全景图”,而且还能追踪对象内所包含的所有引用,并保存那些对象和他们内部的引用……,于是形成了一个“对象网”。

3.要使用对象序列化很简单,只需使该对象实现Serializable接口即可。Serializable是一个标识接口,里面什么也没有。写对象的时候,采用的是OutputStream流,并该流包装到ObjectOutputStream流上,就可以使用ObjectOutputStream的writeObject()方法写对象。同样,读对象的时候采用的是InputStream流,将其包装到ObjectInputStream流上,使用ObjectInputStream的readObject()方法读对象。下面是一个具体的例子:

这是一个Persion对象,准备被序列化的

 

Client:

结果:打印输出的结果、相应目录下生成的persion.obj文件

 

 

原创粉丝点击