【JAVA笔记——序列化】

所谓的对象序列化(在很多地方也被成为串行化),是指将对象转换成二进制数据流的一种实现手段。通过将对象序列化,可以方便地实现对象的传输及保存。

  在Java中提供有ObjectInputStream与ObjectOutputStream这两个类用于序列化对象的操作。这两个类是windows xp系统下载用于存储和独缺对象的输入输出流类,只要把对象中的所有成员变量都存储起来,就等于保存了这个对象,之后从保存的对象之中再将对象读取进来就可以继续使用此对象。ObjectInputStream类与ObjectOutputStream类,用于新番茄花园帮助开发者完成保存和读取对象成员变量取值的过程,但要求读写或存储的对象必须实现了Serializable接口,但Serializable接口中没有定义任何方法,仅仅被用作一种标志,已被编译器作特殊处理。

  下面是对象的序列化范例:

  import java.io.* ;

  public class Person implements Serializable

  {

  private String name ;

  private int age ;

  public Person(String name,int age)

  {

  this.name = name ;

  this.age = age ;

  }

  public String toString()

  {

  return " 姓名:"+this.name+",年龄:"+this.age ;

  }

  };

  这个类实现了Serializable接口,所以雨林木风xp系统下载此类的对象可序列化。下面的范例使用ObjectOutputStream与ObjectInputStream将Person类的对象保存在文件之中:

  import java.io.*;

  public class SerializableDemo

  {

  public static void main( String args[] ) throws Exception

  {

  File f = new File("SerializedPerson") ;

  serialize(f);

  deserialize(f);

  }

  // 以下方法为序列化对象方法

  public static void serialize(File f) throws Exception

  {

  OutputStream outputFile = new FileOutputStream(f);

  ObjectOutputStream cout = new ObjectOutputStream(outputFile);

  cout.writeObject(new Person("张三",25));

  cout.close();

  }

  // 以下方法为反序列化对象方法

  public static void deserialize(File f) throws Exception

  {

  InputStream inputFile = new FileInputStream(f);

  ObjectInputStream cin = new ObjectInputStream(inputFile);

  Person p = (Person) cin.readObject();

  System.out.println(p);

  }

  }

  在程序中声明了一个deserialize()方法,此方法用于从文件中读取已经保存的对象。

  另外,如果不希望类中的某个属性被序列化,可以在声明属性之前加上transient关键字。用这个关键字修饰的属性没有被保存下来,输出时,将输出默认值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值