资讯专栏INFORMATION COLUMN

Java IO框架总揽--ObjectInputStream& ObjectOutputSt

philadelphia / 1682人阅读

摘要:与的作用是对基本数据和对象进行序列化操作进行支持。如果检测到反序列化的类的和对象二进制流的不同,则会抛出异常。

ObjectInputStream与ObjectOutputStream的作用是:对基本数据和对象进行序列化操作进行支持。其中ObjectInputStream对象提供对基本数据和对象对持久存储,当我们需要读取这些存储这些基本数据或对象时,可以创建文件输入流对应的ObjectInputStream,进而读取这些基本数据或对象。

序列化有关的基础知识:
1 需要序列化的类必须实现java.io.Serializable接口,否则会抛出NotSerializableException异常。
2 如果检测到反序列化的类的serialVersionUID和对象二进制流的serialVersionUID不同,则会抛出异常。
3 Java序列化会将一个类中包含的引用中的所有的成员变量保存下来,所以里面的引用类型也要实现java.io.Serializable的接口。
4 对于不用采用默认序列化或无需序列化的成员变量,可以添加transient关键字,并不是说添加了transient关键字就一定不能序列化。
5 每一个类可以实现readObject、writeObject等方法实现自己的序列化策略,即使是transient修饰的成员变量也可以手动调用ObjectOutputStream的write*等方法,将成员变量序列化。

ObjectOutputStream 有关方法

1 public ObjectOutputStream(OutputStream out) throws IOException {} 
* 创建一个ObjectOutputStream去写入指定的OutputStream,此构造函数将序列化流头写入底层流,调用者需要立即刷新流,以确保用于接收ObjectInputStreams的构造函数在读取该头时不会阻塞。

2 protected ObjectOutputStream() throws IOException, SecurityException {}
* 为完全重新实现ObjectOutputStream的子类提供一种方法,使其不必分配仅由ObjectOutputStream的实现使用的私有数据

3 public void useProtocolVersion(int version) throws IOException {}
* 指定在编写流时使用的流协议版本

4  public final void writeObject(Object obj) throws IOException {}
* 将指定的对象写入ObjutoExtStudio流,对象的类、类的签名、类及其所有超类型的非瞬态和非静态字段的值都可以通过该方法写入,重写writeObject和readObject方法可以将默认的序列号重写,该对象引用的对象是通过传递方式编写的,以便ObjectInputStream可以重构等效的、完整的对象。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72005.html

相关文章

  • Java IO框架总揽--序列化

    摘要:序列化提供的一种对象序列化的机制,在该机制中,一个对象可以被表示为一个字节序列,该字节序列包括对象的数据有关对象的类型的信息和存储在对象中的数据类型。类和是高程次的数据流,他们包含序列化和反序列化对象的方法。 序列化:Java提供的一种对象序列化的机制,在该机制中,一个对象可以被表示为一个字节序列,该字节序列包括对象的数据、有关对象的类型的信息、和存储在对象中的数据类型。 反序列化:将...

    codercao 评论0 收藏0
  • Java IO框架总揽--FileInputStream源码解读

    摘要:是从文件系统中的文件中获取字节,至于什么文件,取决于主机环境,用于读取原始字节流,如图像数据,假如想要读取字符类型流,请使用。跳过个字节本地方法关闭文件输入流 FileInputStream是从文件系统中的文件中获取字节,至于什么文件,取决于主机环境,FileInputStream用于读取原始字节流,如图像数据,假如想要读取字符类型流,请使用FileReader。 ...

    894974231 评论0 收藏0
  • Java IO框架总揽--FileOutputStream源码解读

    摘要:是继承与的子类常用属性文件描述符是否在文件尾部开始追加写入用于读写映射操作文件的通道文件的路径一个关闭锁,只在方法中使用,确保多线程同步调用构造函数创建一个向指定对应的文件中写入数据的文件输出流创建一个向指定对应的文件中写入数据的文件输出流 FileOutputStream 是继承与OutputStream的子类 1 常用属性 private final FileDescriptor...

    warmcheng 评论0 收藏0
  • Java IO框架总揽--File源码解读

    摘要:直接继承与,实现了接口和接口,实现接口,意味着对象支持序列化操作,而实现接口,意味着之间可以比较大小。删除此抽象路径名表示的文件或目录。标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。 showImg(https://segmentfault.com/img/bVbi3ls?w=2048&h=164);1 File直接继承与Object,实现了Serializable接口和C...

    rubyshen 评论0 收藏0
  • Java编程基础23——IO(其他流)&Properties

    摘要:但它融合了和的功能。支持对随机访问文件的读取和写入。的概述和作为集合的使用了解的概述类表示了一个持久的属性集。可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 1_序列流(了解) 1.什么是序列流 序列流可以把多个字节输入流整合成一个, 从序列流中读取数据时, 将从被整合的第一个流开始读, 读完一个之后继续读第二个, 以此类推. 2.使用方式 整合两个: S...

    vvpale 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<