java io框架图_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 IO流体系继承结构图解析相关推荐
- Java集合类框架源码分析 之 LinkedList源码解析 【4】
上一篇介绍了ArrayList的源码分析[点击看文章],既然ArrayList都已经做了介绍,那么作为他同胞兄弟的LinkedList,当然必须也配拥有姓名! Talk is cheap,show m ...
- 基于java洗浴中心管理系统_Java IO流详解
流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- java io流填空题,java面试题选择题_java,Io流面试题和选择题
Java对象的序列化指将一个java对象写入OI流中,与此对应的是,对象的反序列化则从IO流中恢复该java对象.下面就由小编为大家介绍一下java Io流面试题和选择题的文章,欢迎阅读. java ...
- java io 装饰者_Java IO 体系(一): 装饰者模式
前言. IO中常见的使用方式 DataOutputStream out = new DataOutputStream( new BufferedOutputStream( new FileOutput ...
- java io 面试题_Java IO面试题及答案整理汇总
说到Java开发,所有的java程序员都知道Java IO流,而且相信大家在具体的工作中也都会用到,但是其实很多朋友们并没有完全掌握java IQ流的内容,而且java IO在java 面试中也会考察 ...
- java集合类的框架图_Java集合框架01-框架总览
本节摘要:从整体概述Java集合框架 一.Java集合框架架构图 Java集合框架是Java为开发者提供的工具类,集合框架被放置在 java.util.* 包下面,这些工具类从更高层面为开发者提供了数 ...
- java集合框架图(二)
目录 前言 一.list与Set.Map 区别及适用场景 二.ArrayList与LinkedList的区别和适用场景 三.ArrayList与Vector的区别和适用场景 四.HashSet与Tre ...
- java集合框架图(一)
一.集合类简介 Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)"丢进"该容器中.从Java 5 增加了泛型以后,Java集合可以记住容器中对象的数 ...
- java集合框架介绍_Java集合框架介绍
Java集合框架介绍 发布时间:2020-06-26 17:00:14 来源:亿速云 阅读:85 作者:Leah 这篇文章将为大家详细讲解有关Java集合框架介绍,文章内容质量较高,因此小编分享给大家 ...
最新文章
- 从流感预测到智能决策,深度学习能帮企业做哪些事?
- 15 个让新手爱不释手的 Python 高级库
- android的listView组件
- python多功能文本编辑器_多功能文本编辑器(EditPad Pro)
- SSM中shiro的基本使用
- [react] React的事件和普通的HTML事件有什么不同
- 动态给实例添加属性和方法
- 任意点 曲线距离_中级数学11-曲线函数
- mysql语句怎么记_Mysql常用语句(记一下,免得忘)
- 【转】ASP.NET MVC框架下使用MVVM模式-KnockOutJS+JQ模板例子
- Ubuntu 禁用 触摸板
- spring 主从表_听听京东架构师浅谈,MySQL binlog 主从同步
- 递归存储过程中使用cursor
- Hive 开窗必需掌握的rankdense_rankrow_number
- 电池供电的电容麦_板儿砖变电池?!是的,科学家已成功实现这一功能
- 两台文件服务器共享文件同步,如何实现两台或多台电脑远程修改文件同步更新?...
- 萤火虫算法matlab实现,萤火虫算法,matlab代码.doc
- 关闭绿联硬盘盒子自动休眠的方法!
- 游山西村 陆游- 南宋
- 引入 ECharts和Bootstrap的bootcdn样式表路径
热门文章
- 软件项目风险评估计划
- 【Lua】哈夫曼树构造算法的分析与实现
- lotus 扇区生命周期
- 阿里巴巴和环球资源的粗略区别
- html css高度自适应浏览器高度,Div + CSS高度自适应解决方法_html/css_WEB-ITnose
- 卡巴司机如此重大bug为何视而不改?
- GitKraken 小章鱼使用教程
- [论文学习]3——在工业炼油中应用VM-SAE的案例分析
- HTTPS端口443被程序vmware-hostd.exe占用的解决
- 专科生从实习到现在两年,入行回顾和总结。 有收获,有失去,有遗憾,哪怕前路迷茫,仍要继续前行。