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