java序列化

java序列化的作用

  我们可以通过java序列化,将java对象状态保存为一文件,然后在需要的时候,通过java提供的方法读出对象当时的情况。

      序列化技术为远程通信提供了标准的线路级对象表示法,也为JavaBeans组件结构提供了标准的持久化数据格式。

1. 序列化的类需要实现java.io.Serializable接口

2. 通过ObjectOutputStream输出流的writeObject方法来保存序列化对象

3. 通过ObjectOutputstream输入流的readObject方法来读取保存的序列化对象

简单实例:

对象Person为实现了Serializable接口的一个对象

保存对象:

File file = new File("person.out");

Person person = new Person("hu.yuan",25,"M");

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));

oos.writeObject(person);

oos.close();

读取对象:

ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));

Person person = ois.readObject();

ois.close();

读取到的person对象中有值  hu.yuan 25 M

 

当Person对象被保存到person.out文件中之后,我们可以在其它地方去读取该文件以还原对象,但必须确保该读取程序的CLASSPATH中包含有Person.class(哪怕在读取Person对象时并没有显示地使用Person类,如上例所示),否则会抛出ClassNotFoundException。

 

在有继承层次的业务对象,进行序列化时,如果父类没有实现Serializable接口,那么父类必须提供默认构造函数

 

java序列化,实际使用实例:

我们需要推送一个带有各种属性的对象给多个位置

http://blog.csdn.net/will_awoke/article/details/38751587?utm_source=tuicool&utm_medium=referral

 

posted @ 2015-10-27 22:54  hyiam  阅读(158)  评论(0编辑  收藏  举报