java+io体系结构图_Java IO 体系结构
Java IO体系结构看似庞大复杂,其实有规律可循,要弄清楚其结构,需要明白两点:
1. 其对称性质:InputStream 与 OutputStream, Reader 与 Writer,他们分别是一套字节输入-输出,字符输入-输出体系
2. 原始处理器(适配器)与链接流处理器(装饰器)
其结构图如下:
InputStream-OutputStream体系
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 mac系统io文件流_Java IO流基础1--IO的分类体系与文件流
什么是IO流 Java中的IO 了解什么是IO流之前,要先知道什么是IO.IO,就是in和out(即输入和输出),指应用程序和外部设备之间的数据传递,常见的外部设备包括文件.管道.网络连接等. 流的概 ...
- java io字符流_Java IO流字符流简介及基本使用
Java IO流字符流简介及常用字符流的基本使用 字符流分为输入字符流(Writer)和输出字符流(Reader),这两种字符流及其子类字符流都有自己专门的功能.在编码中我们常用的输出字符流有File ...
- linux read函数_浅谈Linux内核IO体系之磁盘IO
前言 Linux I/O体系是Linux内核的重要组成部分,主要包含网络IO.磁盘IO等.基本所有的技术栈都需要与IO打交道,分布式存储系统更是如此.本文主要简单分析一下磁盘IO,看看一个IO请求从发 ...
- java io框架图_Java IO流体系继承结构图解析
Java IO体系结构看似庞大复杂,其实有规律可循,要弄清楚其结构,需要明白两点: 1. 其对称性质:InputStream 与 OutputStream, Reader 与 Writer,他们分别是 ...
- java io 装饰者_Java IO 体系(一): 装饰者模式
前言. IO中常见的使用方式 DataOutputStream out = new DataOutputStream( new BufferedOutputStream( new FileOutput ...
- Java IO体系结构图
输入流 输出流 InputStream系列是JDK1.0开始的,Reader系列是JDK1.1开始的 字节流中,常用的是FileInputStream和BufferedInputStream 字符流中 ...
- 基于java洗浴中心管理系统_Java IO流详解
流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- java中io流案例_Java IO流的简单使用 通俗易懂 超详细 【内含案例】
IO流简单使用 输入和输出是相对于程序来说的,读取到程序中叫做输入,写到文件中叫输出. InputStream 字节输入流 InputStream 字节输入流基类,是字节输入流所有类的超类 // 从输 ...
- java io删除文件_java IO 文件操作方法总结
java IO 文件操作方法总结 对于输入输出的理解: 输入输出,以程序为参考点,外部数据进入程序,通过输入流完成.程序将数据给外部设备,通过输出流完成. 文件Io的操作 //获取文件 File fi ...
最新文章
- Oracle timestamp 转换 date
- c语言输入后没答案,C语言章节习题及答案(无指针)解读.doc
- python 函数调用列表,函数调用列表的Python oneliner
- 在VMware虚拟机下安装ubuntu16.04,及hackrf one环境配置
- EZ 2018 07 06 NOIP模拟赛
- 文件上传下载小结一(转载)
- c++中堆、栈内存分配
- 分别用顺序表和链表实现队列
- 为什么监听不到开机广播action.BOOT_COMPLETED
- JDK源码(13)-Throwable
- 演示:思科交换机的Telnet管理与SSH管理
- 80%程序员不知道的职场秘诀,升职加薪不是梦
- 吴恩达神经网络和深度学习-学习笔记-37-inception网络
- virtualbox中实施ASM扩容实施记录
- Windows Server 2008 R2入门之FTP服务器
- PCL_点云数据处理方法概述
- 计算机组装与维护考试题a卷,计算机组装与维护考试题A卷.docx
- 10代cpu能装服务器系统不,第10代CPU可以装Windows7吗
- 4.Eclipse中使用SVN
- 瑞星2011:没有最新,只有更新
热门文章
- python数组拼接concat_Python xarray.concat然后xarray.to_netcdf生成巨大的新文件大小
- 监控mysql主从的工具_zabbix利用percona-toolkit工具监控Mysql主从同步状态
- python cprofile_python 中 cprofile 分析 多进程程序
- android javamail获取邮件太多太慢_「Java」 - SpringBoot amp; 邮件发送
- (转载)学习Javascript闭包(Closure)
- 无法远程连接阿里云的Mysql
- codeforces 735C Tennis Championship(贪心+递推)
- jQuery 的 ajax
- 1. rc 目录结构
- excel两个表格数据对比_两个Excel表格合并,最有水平的处理方法