java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要介绍了 Java IO 流体系继承结构图, 非常不错,具有参考借鉴价值,需要的朋友可以参考下
Java IO 体系结构看似庞大复杂, 其实有规律可循, 要弄清楚其结构, 需要明白两点:
1. 其对称性质: InputStream 与 OutputStream, Reader 与 Writer, 他们分别是一套字节输入 - 输出, 字符输入 - 输出体系
2. 原始处理器 (适配器) 与链接流处理器(装饰器)
其结构图如下:
Reader-Writer 体系
1. 基类InputStream 与 OutputStream 是所有字节型输入输出流的基抽象类, 同时也是适配器 (原始流处理器) 需要适配的对象, 也是装饰器 (链接流处理器) 装饰对象的基类.
2. 原始流处理器原始流处理器接收 Byte 数组对象, String 对象, FileDescriptor 对象将其适配成 InputStream, 以供其他装饰器使用, 他们都继承自 InputStream 包括如下几个:
ByteArrayInputStream: 接收 Byte 数组为流源, 为多线程通信提供缓冲区操作功能
FileInputStream: 接收一个 File 作为流源, 用于文件的读取
PipedInputStream: 接收一个 PipedOutputStream, 与 PipedOutputStream 配合作为管道使用
StringBufferInputStream: 接收一个 String 作为流的源 (已弃用)
3. 链接流处理器链接流处理器可以接收另一个流处理器 (InputStream, 包括链接流处理器和原始流处理器) 作为源, 并对其功能进行扩展, 所以说他们是装饰器.
1) FilterInputStream 继承自 InputStream, 是所有装饰器的父类, FilterInputStream 内部也包含一个 InputStream, 这个 InputStream 就是被装饰类 -- 一个原始流处理器, 它包括如下几个子类:
BufferedInputStream: 用来将数据读入内存缓冲区, 并从此缓冲区提供数据
DataInputStream: 提供基于多字节的读取方法, 可以读取原始数据类型 (Byte, Int, Long, Double 等等)
LineNumberInputStream: 提供具有行计数功能的流处理器
PushbackInputStream: 提供已读取字节 "推回" 输入流的功能
2) ObjectInputStream: 可以将使用 ObjectOutputStream 写入的基本数据和对象进行反串行化
3) SequenceInputStream: 可以合并多个 InputStream 原始流, 依次读取这些合并的原始流
对于 OutputStream, Reader, Writer 的体系结构也跟 InputStream 的结构类似
以上所述是小编给大家介绍的 Java IO 流体系继承结构图_动力节点 Java 学院整理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 PHPERZ 网站的支持!
来源: http://www.phperz.com/article/18/0105/357083.html