美文网首页java复习
2020-07-08对象序列化流

2020-07-08对象序列化流

作者: 智障猿 | 来源:发表于2020-07-08 17:14 被阅读0次

对象序列化流

  • 概述:
    就是将对象保存到磁盘中,或者在网络中传输对象。这种机制就是使用一个字节序列表示一个对象,该字节序列包含:对象的类型,对象的数据和对象中存储的属性等信息。字节序列写到文件之后,相当于文件中持久保存了一个对象信息,反之,该字节序列还可以从文件中读取出来,重构对象,对他进行反序列化
  • 要实现序列化和反序列化就要使用对象序列流和对象反序列流
    ①对象序列流:ObjectOutputStream
    ②对象反序列流:ObjectInputStream

ObjectOutputStream对象序列流

构造方法 说明
ObjectOutputStream(OutputStream out) 创建一个写入指定的OutputStream的ObjectOutputStream
方法 说明
writeObject(Object obj 将指定对象写入ObjectOutputStream
  • 注意:
    ①一个对象要是想要被序列化,该对象所属的类必须实现Serializable接口
    ②Serialzable是一个标记接口,实现该接口,不需要重写任何方法

ObjectInputStream对象反序列化流

构造方法 说明
ObjectInputStream(InputStream in) 创建从指定的InputStream读取的ObjectInputStream
方法 说明
Object readObject() 从ObjectInputStream读取一个对象
        //对象序列化
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("test\\Student.txt"));
        Student student =new Student("zzt",18);
        objectOutputStream.writeObject(student);
        //反序列化
        ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("test\\Student.txt"));
        Object o = objectInputStream.readObject();
        Student student1 = (Student)o;
        System.out.println(student1);

出现的问题及解决方法

  1. 用对象序列化流序列化了一个对象后,假如我们修改了对象所属的类文件,读取数据会不会出问题?
  • 会出问题,抛出InvalidClassException异常
  1. 如果出问题了,如何解决
  • 给对象所属的类加一个serialVersionUID
    prvate static final long serialVersionUID = 42L;
  1. 如果一个对象中的某个成员变量的值不想被序列化,如何实现呢?
  • 给该成员变量加transient关键字修饰,该关键字标记的成员变量不参与序列化过程。

相关文章

  • IO流

    一、对象流对象流 序列化 公共流(节点流)ObjectInputStream 反序列化输入流 新增方...

  • JAVA 笔记之 序列化与反序列化

    需求:把对象按照流一样的方式操作。对象流。序列化流。序列化:把对象按照流一样的方式操作。反序列化:把文件中的流对象...

  • 2019-03-07

    序列化流,打印流基础知识整理 序列化流(对象流) 把对象以流的形式存储在硬盘上或者数据库中的过程就是写序列化流。原...

  • 序列化(java Serializeable、json、prot

    java序列化 序列化:将对象写入到IO流中反序列化:从IO流中恢复对象意义:序列化机制允许将实现序列化的Java...

  • Java学习day-19-1:IO流

    一、序列化和反序列化: 1.对象流: 能够对对象进行读写操作的处理流。 (1)ObjectInputStream(...

  • 07-Java序列化面试题(10题)

    1、什么是java序列化,如何实现java序列化? 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内...

  • Java序列化

    含义、意义使用场景 序列化:将对象写入到IO流中 反序列化:从IO流中恢复对象 意义:序列化机制允许将实现序列化的...

  • 3.02.序列化流

    把对象以流的形式存储在硬盘上或者数据库中的过程就是写序列化流。 序列化流:对象输出流: ObjectOutput...

  • IO流之 对象操作流

    对象操作流 核心代码无变化,所以不做多余记录 什么是对象操作流 将对象进行序列化操作和反序列化操作的流,读出就是序...

  • 五、文件传输基础-序列化

    1、对象的序列化和反序列化 对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化 序列化流(Ob...

网友评论

    本文标题:2020-07-08对象序列化流

    本文链接:https://www.haomeiwen.com/subject/emuqcktx.html