浏览 2018 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-12-30
最后修改:2010-01-26
序列化和反序列化的关系图表可形成包含循环引用的顺序图表。这是整个序列化的总体思想。 而Serializable接口属于支持序列化的一个接口,只有一个实现它的对象可以被序列化工具存储和回复,Serializable接口没有定义任何成员,只用来表示一个累可以被序列化,若该类可以序列化,那么它的所有子类都可以。 下面是关于序列化的一个实例: 程序名称:SerializationDemo.java 程序主题:实现对象的序列化和反序列化 程序说明:该程序由实例化一个MyClass类的对象开始,该对象有三个实例变量,类型分别为String、int、double,是希望存储和恢复的信息。 import java.io.*; public class SerializationDemo{ public static void main(String args[]){ //Object serialization try{ MyClass object1=new MyClass("Hello",-7,2.7e10); System.out.println("object1:"+object1); FileOutputStream fos=new FileOutputStream("serial"); ObjectOutputStream oos=new ObjectOutputStream(fos); oos.writeObject(object1); oos.flush(); oos.close(); } catch(Exception e){ System.out.println("Exception during serialization:"+e); System.exit(0); } //Object deserialization try{ MyClass object2; FileInputStream fis=new FileInputStream("serial"); ObjectInputStream ois=new ObjectInputStream(fis); object2=(MyClass)ois.readObject(); ois.close(); System.out.println("object2:"+object2); } catch(Exception e){ System.out.println("Exception during deserialization:"+e); System.exit(0); } } } class MyClass implements Serializable{ String s; int i; double d; public MyClass(String s,int i,double d){ this.s=s; this.i=i; this.d=d; } public String toString(){ return "s="+s+";i="+i+";d="+d; } } 程序运行结果:object1和object2的实例变量是一样的,输出如下: object1:s=Hello;i=-7;d=2.7E10 object2:s=Hello;i=-7;d=2.7E10 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |