标签:异常 不一致 返回 zab 出现 close 写入文件 组织 bsp
ObjectOutputStream 类
<1> 基本概念
1. java.io.ObjectOutputStream类:用于将一个对象的所有内容整体写入到输出流中
2. 只能将支持 java.io.Serializable 接口的对象写入流中
3. 类通过实现 java.io.Serializable 接口以启用其序列化功能
4. 所谓序列化,指将一个对象需要储存的相关信息,有效组织成字节序列的转化过程
<2> 常用的方法
方法声明 功能介绍
ObjectOutputStream(OutputStream out) 根据参数指定的引用来构造对象
void writeObject(Object obj) 用于将参数指定的对象整体,写入到输出流中
void close() 用于关闭输出流,并释放有关的资源
ObjectInputStream 类
<1> 基本概念
java.io.ObjectInputStream类:用于从输入流中,一次性将对象整体读取出来。
所谓反序列化,指将有效组织的字节序列,恢复为一个对象,及相关信息的转化过程
<2> 常用的方法
方法声明 功能介绍
ObjectInputStream(InputStream in) 根据参数指定的引用来构造对象
Object readObject() 从输入流中,读取一个对象,并返回,无法通过返回值来判断是否读取到文件的末尾
void close() 用于关闭输入流,并释放有关的资源
<3> 版本化序列号
序列化机制,是通过在运行时判断类的 serialVersionUID 来验证版本一致性的。 在进行反序列化时,JVM会把传来的字节流中的 serialVersionUID 与
本地相应实体类的 serialVersionUID 进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常
(InvalidCastException)。
<4> transient 关键字
transient 是Java语言的关键字,用来表示一个域不是该对象串行化的一部分。
当一个对象被串行化的时候,transient 型变量的值不包括在串行化的表示中,然而非 transient 型的变量是被包括进去的。
<5> 经验
当希望将多个对象写入文件时,通常将多个对象放入一个集合中,然后将集合这个整体,看作一个对象,写入输出流中,
此时只需要调用一次 readObject方法,就可以将整个集合的数据读取出来,从而避免了通过返回值,进行是否到达文件末尾的判断。
JavaSE: ObjectOutputStream 类 和 ObjectInputStream 类
标签:异常 不一致 返回 zab 出现 close 写入文件 组织 bsp
原文地址:https://www.cnblogs.com/JasperZhao/p/14869960.html