java的对象序列化

        今天要在我的项目中要在原有的数据结构中添加一个字段,最后决定使用对象序列化技术将对象传过去,我们的对象是封装在一个Map中的。我介绍的过程是根据我在使用过程中所使用的方法。

      首先,要使用对象序列化,我们应该知道ObjectInputStream和ObjectOutputStream这两个对象读写流。这两个流负责将序列化后的对象写入文件和从文件中读出来。同时,只有实现了Serializable接口的对象才能被序列化,需要指出的是并不是所有的类对象都可以被序列化。下面是write(Object os)-负责将序列化的对象写入文件和read()方法-负责从文件中反序列化对象。

public boolean write(String o) {

  try {
   OutputStream output = new FileOutputStream("./file/serializable");//指定文件的输出路径s
   ObjectOutputStream obOutput = new ObjectOutputStream(output);
   obOutput.writeObject(o);
   obOutput.flush();
   obOutput.close();
   return true;
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return false;

 }

 public String read() {

  try {
   InputStream input = new FileInputStream("./file/serializable");//指定文件的读入路径
   ObjectInputStream obInput = new ObjectInputStream(input);
   return (String) obInput.readObject();
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

  return null;

 }

 

需要指出的是,写入的对象可以是自定义对象,但是自定义对象必须实现Serializable接口才能被序列化。同时对象中的对象属性也会被序列化,同理若是自定义对象也要实现serializable接口。

 

序列化的东西就说那么多,可能在理论上不是说的很详细,若想进一步深入的了解可以参考其他文献,此处只给出使用方法,若您转载不胜感激,但请注明出处,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值