Java IO流体系继承结构图_动力节点Java学院整理
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学院整理,希望对大家有所帮助
下一篇: 深入理解Java多线程与并发编程