Java IO 体系结构
来源:互联网 发布:office for mac 15.36 编辑:程序博客网 时间:2024/06/08 00:24
转载自:http://www.cnblogs.com/zemliu/archive/2013/08/19/3269015.html
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 IO体系结构
- Java IO体系结构
- Java IO 体系结构
- java的Io体系结构
- java IO体系结构(二)字符流
- java IO体系结构(二) 字节流
- Java之IO类的体系结构
- 【Java.IO】I/O 流的类体系结构
- .NET中IO体系结构
- Java体系结构
- java体系结构
- java体系结构
- java体系结构
- Java体系结构
- ARM 体系结构、处理器内核、内存及 IO
- java体系结构1
- Git的使用说明
- angularJS学习之路(十七)---自定义指令
- ElasticSearch中分词器组件配置详解
- 欢迎使用CSDN-markdown编辑器
- Python之可读写的socket逻辑
- Java IO 体系结构
- eclipse编译调试tomcat7.0.65
- iOS--同时请求的问题(用不到)
- java中的并发集合类概述
- 【Linux应用层】防火墙iptables命令
- LinkedHashMap解读
- Java IO字节流和字符流的区别
- 边城
- [实验]linux虚拟机不进单用户重置密码