江苏镇江网站建设,做网站的背景怎么做,加盟招商网站建设,沈阳有做网站的吗Java IO体系结构看似庞大复杂,其实有规律可循,要弄清楚其结构,需要明白两点:1. 其对称性质:InputStream 与 OutputStream, Reader 与 Writer,他们分别是一套字节输入-输出,字符输入-输出体系2. 原始处理器(适配器)与链接流处理器(装饰器)其结构图如下:Reader-Writer体系1. 基类…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的结构类似