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

 更新时间:2017年05月10日 14:40:47   投稿:mrr  
这篇文章主要介绍了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学院整理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 如何解决SpringBoot集成百度UEditor图片上传后直接访问404

    如何解决SpringBoot集成百度UEditor图片上传后直接访问404

    在本篇文章里小编给大家整理的是一篇关于如何解决SpringBoot集成百度UEditor图片上传后直接访问404相关文章,需要的朋友们学习下。
    2019-11-11
  • 使用sharding-jdbc实现水平分表的示例代码

    使用sharding-jdbc实现水平分表的示例代码

    本文主要介绍了sharding-jdbc实现水平分表,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • spring cloud 集成 ribbon负载均衡的实例代码

    spring cloud 集成 ribbon负载均衡的实例代码

    spring Cloud Ribbon 是一个客户端的负载均衡器,它提供对大量的HTTP和TCP客户端的访问控制。本文给大家介绍spring cloud 集成 ribbon负载均衡,感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • 带你快速搞定Mysql优化

    带你快速搞定Mysql优化

    大部分的游戏数据库都是使用mysql ,所以今天今天大概聊一下对数据库的优化原则问题,都是基于InnoDB 引擎,希望你能在遇到同样的问题时能解决问题
    2021-07-07
  • Java实现富文本转markdown

    Java实现富文本转markdown

    这篇文章主要为大家详细介绍了如何通过Java实现富文本转markdown功能,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考下
    2023-12-12
  • java实现的RC4加密解密算法示例

    java实现的RC4加密解密算法示例

    这篇文章主要介绍了java实现的RC4加密解密算法,结合具体实例形式分析了java RC4加密解密算法的实现与使用技巧,需要的朋友可以参考下
    2017-06-06
  • JAVA中常见异常类

    JAVA中常见异常类

    本文主要介绍了JAVA中的常见异常类。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • java8 LocalDate 使用详解

    java8 LocalDate 使用详解

    这篇文章主要介绍了java8 LocalDate 使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Springboot如何加载静态图片

    Springboot如何加载静态图片

    这篇文章主要介绍了Springboot如何加载静态图片,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • springboot多环境配置文件及自定义配置文件路径详解

    springboot多环境配置文件及自定义配置文件路径详解

    这篇文章主要介绍了springboot多环境配置文件及自定义配置文件路径,文中给大家介绍了classpath的基本概念讲解及自定义springboot配置文件路径的相关知识,需要的朋友可以参考下
    2023-02-02

最新评论