Java-IO流之对象流

简介: ObjectInputStream和OjbectOutputSteam

对象流

  • ObjectInputStream和OjbectOutputSteam
  • 用于存储和读取基本数据类型数据或对象的处理流。它的强大之处就是可以把Java中的对象写入到数据源中,也能把对象从数据源中还原回来。
  • 序列化:用ObjectOutputStream类保存基本类型数据或对象的机制
  • 反序列化:用ObjectInputStream类读取基本类型数据或对象的机制
  • ObjectOutputStream和ObjectInputStream不能序列化static和transient修饰的成员变量

对象的序列化

  • 对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。//当其它程序获取了这种二进制流,就可以恢复成原来的Java对象
  • 序列化的好处在于可将任何实现了Serializable接口的对象转化为字节数据,使其在保存和传输时可被还原
  • 序列化是 RMI(Remote Method Invoke – 远程方法调用)过程的参数和返回值都必须实现的机制,而 RMI 是 JavaEE 的基础。因此序列化机制是JavaEE 平台的基础
  • 如果需要让某个对象支持序列化机制,则必须让对象所属的类及其属性是可序列化的,为了让某个类是可序列化的,该类必须实现如下两个接口之一。否则,会抛出NotSerializableException异常
  • Serializable
  • Externalizable

例子

  • 序列化:将对象写入到磁盘或者进行网络传输。
  • 要求对象必须实现序列化
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(“data.txt"));
Person p = new Person("稀土掘金", 18, "北京", new Pet());
oos.writeObject(p);
oos.flush();
oos.close();


相关文章
|
7月前
|
存储 Java API
【JAVA学习之路 | 进阶篇】(处理流)转换流与对象流
【JAVA学习之路 | 进阶篇】(处理流)转换流与对象流
|
7月前
|
Java API 数据库
IO流【转换流、字符输出流、数据流、对象流】(三)-全面详解(学习总结---从入门到深化)
IO流【转换流、字符输出流、数据流、对象流】(三)-全面详解(学习总结---从入门到深化)
72 0
|
Java
Java IO流--对象流ObjectInputStream和ObjectOutputStream及对象序列化机制的理解
Java IO流--对象流ObjectInputStream和ObjectOutputStream及对象序列化机制的理解
75 0
Java开发——31.I/O流_处理流(对象流),对象的序列化机制
对象的序列化机制:允许把内存中的Java对象转换成和平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点(序列化);其它程序获取了这种二进制流,就可以恢复成原来的Java对象(反序列化)。
Java开发——31.I/O流_处理流(对象流),对象的序列化机制
|
存储 Java
【JAVA】编码表,字符流,对象流,其他流(一)
【JAVA】编码表,字符流,对象流,其他流
【JAVA】编码表,字符流,对象流,其他流(一)
|
存储 Java API
让你的数据和对象有源有出路,一文打尽,Java常用IO流处理流(处理字节流文件流)缓冲流、转换流、对象流等
让你的数据和对象有源有出路,一文打尽,Java常用IO流处理流(处理字节流文件流)缓冲流、转换流、对象流等
156 0
让你的数据和对象有源有出路,一文打尽,Java常用IO流处理流(处理字节流文件流)缓冲流、转换流、对象流等
|
存储 Java
Java_IO流06:序列化机制(对象流)
Java_IO流06:序列化机制(对象流)
106 0
Java_IO流06:序列化机制(对象流)
|
设计模式 Java API
【JAVA】编码表,字符流,对象流,其他流(二)
【JAVA】编码表,字符流,对象流,其他流
|
存储 缓存 IDE
Java编程之缓冲流+对象流
字符集 字符 文字和符号总称(Character) 不同国家的数字和符号是一样的 字母 不同国家的文字 中文 日文 韩文 计算机最早产生是按照英语单词 单个字符设计的 字母 数字 符号-----1字节 8bit 256 如果计算机想要处理除了上述字母符号以外的其他字符---比如中文2字节 需要将中文进行字符编码----->拆分 和 组合 拆分合组合的规则---所谓的字符编码 常见的字符编码 ASCII American Standard Code for Information Interchange ISO-8859-1 GB2
127 0
|
Java 编译器 存储
Java 对象流
对象流 ObjectInputStream ObjectOutputStream类分别是InputStream和OutputStream的子类,对象输出流使用writeObject(Object obj)方法,将一个对象obj写入到一个文件,使用readObject()读取一个对象。
1038 1