`

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 IO的核心在于流(Stream)的概念,流是一组有序的数据序列,可以是从源读取数据到程序,也可以是从程序写入数据到目的地。Java IO主要分为两大类...

    java IO.chm

    这篇详细的总结将围绕Java IO体系结构、核心类、流的概念、缓冲区、转换流、字符集、文件操作、对象序列化以及NIO(非阻塞IO)等多个方面进行展开。 一、Java IO体系结构 Java IO体系是Java平台中用于处理数据输入...

    Java IO 与 装饰模式

    1. Java IO体系结构: Java IO库基于流的概念,流是数据传输的抽象表示,分为字节流(处理单个字节的数据)和字符流(处理Unicode字符的数据)。流可以分为输入流和输出流,分别用于读取和写入数据。Java IO体系包含...

    java io.pdf

    Java IO体系结构主要由以下几个核心部分组成: 1. **流(Streams)**:Java IO的核心概念是流,它们代表数据的源和目的地。流可以是字节流或字符流,分为输入流和输出流。字节流处理单个字节的数据,而字符流处理...

    javaIO实例

    Java IO体系结构主要分为字符流和字节流两大类。字符流处理的是Unicode字符,适合处理文本数据,包括InputStreamReader、OutputStreamWriter、Reader和Writer等类。字节流处理的是原始字节,适用于所有类型的数据,...

    Java-Java IO编程教程

    Java IO体系结构由多个类和接口组成,这些类和接口位于java.io包中。基本的IO操作主要分为字符流和字节流两大类。字符流处理Unicode字符,适合文本文件的读写,包括InputStreamReader、OutputStreamWriter、Reader和...

    java io 系列操作代码练习 Java学习资料

    一、Java IO体系结构 Java IO体系主要包括字节流(Byte Stream)和字符流(Character Stream),以及缓冲流(Buffered Stream)、转换流(Convert Stream)、对象流(Object Stream)等。其中,字节流处理单字节的...

    java IO文档

    #### 二、Java IO体系结构 Java IO系统的类库主要分为两大块:字节流和字符流。 1. **字节流**:基于8位字节的数据流。 - `InputStream`:所有字节输入流的超类。 - `OutputStream`:所有字节输出流的超类。 2. ...

    java io一些探讨

    Java IO体系结构的核心类主要包括`InputStream`、`OutputStream`、`Reader`和`Writer`,这些类构成了Java IO的基础框架。其中,`InputStream`和`OutputStream`主要用于处理字节流,而`Reader`和`Writer`则用于处理...

    java的io操作源代码

    Java的IO操作是Java编程中的基础且重要的一部分,它提供了对输入...通过阅读和实践这个源代码库,你不仅可以掌握基本的文件操作,还能深入了解Java IO体系结构,为后续的网络编程、数据库操作等复杂任务打下坚实基础。

    “Java IO”总结

    在本文中,我们将深入探讨Java IO体系结构,关键概念以及常见用途。 Java IO系统的核心是流(Stream),流可以被视为数据的双向通道,既可以用来从源头获取数据,也可以将数据发送到目的地。Java IO分为字符流和...

    java电话本IO版本

    首先,我们要理解Java IO体系结构,它基于“流”的概念,分为字节流和字符流两大类,又分为输入流和输出流。字节流处理8位的字节数据,如FileInputStream和FileOutputStream;字符流处理16位的Unicode字符,如 ...

    Java4Android 34_Java当中的IO(三)

    在"Java4Android 34_Java当中的IO(三)"这个主题中,我们将会深入探讨Java IO体系结构,包括流的概念、缓冲区、转换流以及在Android开发中的应用。 首先,让我们了解一下Java中的流。在Java中,流被用来表示数据的...

    VIP09_JavaSE_JavaIO_File_day0307-1.rar

    1. **Java IO体系结构**:Java IO框架主要包括字节流和字符流,分为输入流和输出流。字节流处理单个字节的数据,如InputStream和OutputStream家族;字符流处理Unicode字符,如Reader和Writer家族。此外,还有缓冲流...

    java(IO)第二部分

    这篇博客“java(IO)第二部分”可能深入探讨了Java IO体系结构的高级概念,特别是那些在第一部分没有涵盖的部分。虽然具体的博文内容无法直接提供,但我们可以基于常见的Java IO主题进行详细的解释。 首先,Java ...

    javaIo处理

    Java IO体系结构的设计非常全面,能够满足大多数的输入输出需求。本文档将通过具体的示例来讲解Java IO的基本概念和常用API的使用方法。 #### 二、基础知识 在深入探讨具体案例之前,我们需要了解一些基础知识: ...

    Java中IO解读与使用实例-动力节点共17页.pdf

    一、Java IO体系结构 Java的IO体系主要由流(Stream)、缓冲区(Buffer)和转换(Converter)组成。流是数据传输的通道,分为字节流和字符流两大类。字节流处理单个字节的数据,如InputStream和OutputStream;字符流...

Global site tag (gtag.js) - Google Analytics