Java 里对象串行化

本文介绍了Java中对象的串行化概念及其实现方法。详细讲述了如何使用ObjectOutputStream和ObjectInputStream来保存和恢复对象状态。

    对象串行化,有这样一个说法:

 

    对象的寿命通常随着生成该对象的程序的终止而终止。有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复。我们把对象的这种能记录自己的状态以便将来再生的能力,叫做对象的持续性(persistence)。对象通过写出描述自己状态的数值来记录自己,这个过程叫对象的串行化(Serialization)。

 

    在java.io包中,接口serialization用来作为实现对象串行化的工具 ,只有实现了serialization的类的对象才可以被串行化。
   

    下面的例子给出了保存一个对象的方法:

  1. List list = ......
  2. try {
  3.         ObjectOutputStream out = new ObjectOutputStream(
  4.                    new FileOutputStream("data_save.dat"));
  5.         out.writeObject(list);
  6.         out.close();
  7. catch (FileNotFoundException e1) {
  8.         e1.printStackTrace();
  9. catch (IOException e1) {
  10.         e1.printStackTrace();
  11. }

    通过ObjectOutputStream对象,保存串行对象。通过FileOutputStream对象把串行对象保存到文件data_save.dat中。

  1. try {
  2.     ObjectInputStream in = new ObjectInputStream(
  3.             new FileInputStream("data_save.dat"));
  4.     List list2 = (ArrayList) in.readObject();
  5.             
  6.     Map<String, Object> map2 = null;
  7.     for(int i = 0; i < list.size(); i++) {
  8.             map = list.get(i);
  9.         
  10.             System.out.println(map);
  11.     }
  12.         
  13. catch (FileNotFoundException e1) {
  14.         e1.printStackTrace();
  15. catch (IOException e1) {
  16.         e1.printStackTrace();
  17. catch (ClassNotFoundException e) {
  18.         e.printStackTrace();
  19. }

通过ObjectInputStream 对象获取串行对象,通过FileInputStream对象读取保存的数据。

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值