Java的序列化

来源:互联网 发布:淘宝钱扣了没付款成功 编辑:程序博客网 时间:2024/04/30 04:38

Java中的序列化可以将一个对象转换成一组byte对象,使这个对象在以后再被调用到时可以直接重组。

对象的序列化主要有两种用途:
  1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;
  2) 在网络上传送对象的字节序列。


对象序列化包括如下步骤:
  1)
让对象实现Serializable接口(Serializable接口是一个“标记接口”,不含任何方法);

2)创建一个对象输出流,它可以包装一个其他类型的目标输出流,如文件输出流;

3)通过对象输出流的writeObject()方法写对象。

File file=new File("input.dat");

file.createNewFile();

FileOutputStream fos=new FileOutputStream(file);

ObjectOutputStream oos=new ObjectOutputStream(fos);

oos.writeObject(s1);

oos.flush();

oos.close();

fos.close();


  对象反序列化的步骤如下:

1) 创建一个对象输入流,它可以包装一个其他类型的源输入流,如文件输入流;

  2) 通过对象输入流的readObject()方法读取对象。

FileInputStream fis=new FileInputStream(file);

ObjectInputStream ois=new ObjectInputStream(fis);

Student s2= (Student)ois.readObject();

ois.close();

fis.close();

另外,要注意,子类序列化,父类也必须序列化;父类序列化,所有子类都需要序列化。



原创粉丝点击