欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java IO流体系继承结构图_动力节点Java学院整理

程序员文章站 2024-02-21 21:55:34
java io体系结构看似庞大复杂,其实有规律可循,要弄清楚其结构,需要明白两点: 1. 其对称性质:inputstream 与 outputstream, reader...

java io体系结构看似庞大复杂,其实有规律可循,要弄清楚其结构,需要明白两点:

1. 其对称性质:inputstream 与 outputstream, reader 与 writer,他们分别是一套字节输入-输出,字符输入-输出体系

2. 原始处理器(适配器)与链接流处理器(装饰器) 

其结构图如下:

Java IO流体系继承结构图_动力节点Java学院整理

reader-writer体系 

Java IO流体系继承结构图_动力节点Java学院整理

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学院整理,希望对大家有所帮助