`

JAVA IO结构图

 
阅读更多

 图1 http://blog.sina.com.cn/s/blog_855ce96b0100vr7r.html

 

 

 

      流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样.

      总体来说,IO可以分为字节流和字符流,不同在于字符流由字节流包装而来,在IO读入之后经过JVM处理,把字节流转换成字符流。而字符流的字符采用哪种字符编码实现由JVM默认编码决定。 而每个流都分输入和输出,所以,总体来说,IO有四个顶层类: 

InputStream 

OutputStream

Reader 

Writer 

 

而作为机器级别于机器直接交互的则是字节流: 

InputStream 

OutputStream

以IO的中间类,进行字节流到字符流的转换过渡,通常可作为字符流类的构造参数,可指定编码: 

InputStreamReader

OutputStreamWriter 

而字节流和字符流的缓冲容器来看有byte和char之分,所以派生出: 

ByteArrayInputStream

ByteArrayOutputStream 

CharArrayInputStream 

CharArrayOutputStream

以上类只是表示流的表示形式,而在传输形式上还表现为是否有缓冲。所以,可以派生出子类为可缓冲类: 

BufferInputStream

BufferOutputStream 

BufferReader 

BufferWriter 

每一个顶层类都有对目录文件(File)的支持: 

FileInputStream 

FileOutputStream 

FileReader

FileWriter

在Java中,一个强大的功能就是可以对对象进行序列化,转成二进制文件输出,也就是字节流输出而不是字符流输出,所以有顶层的

 

InputStream和OutputStream派生类: 

ObjectInputStream 

ObjectOutputStream

流包括了节点流和过滤流,注意的是过滤流,可在读写的同时对数据进行操作,并且实现了同步操作,顶层过滤流类: 

FilterInputStream

FilterOutputStream 

其子类则在其基础上,对节点流进行封装,常见子类有: 

BufferInputStream BufferOutputStream 

DataInputStream DataOutputStream 

LineNumberInputStream PrintStream 

可参考子类的构造方法。 

以上IO操作几乎就是把流装载到内存中,对其进行操作的时候是顺序读写,而需要随机读写时:

RandomAccessFile

从整个类框架的结构实现的接口来看,顶层类: 

InputStream implements Closable, 

OutputStreamimplements Closable, Flushable 

Reader implements Closable, Readable

Writer implements Closable, Flushable, Appendable 

各个接口方法: 

Closable:close(); 

Flushable: flush(); 

Readable: read(CharBuffer cb); 

Appendable:append(); 

从IO类使用时的规则来看,实现这些方法就是很自然的了,也是必须要实现的。如:流使用完必须关闭,流输出前必须刷新。 

注意的是,这四个顶层类都没有实现Serializable接口。

分享到:
评论

相关推荐

    java io 结构图

    文件名"dd16b88f-d8ed-3378-b8a6-1ba319c0ea27.gif"和"eximg.jpeg"可能代表了这个Java IO结构图的图片文件,可以帮助读者直观地理解这个复杂的体系。 总之,Java IO系统为开发者提供了强大而灵活的工具来处理输入...

    java IO 类层次图

    本文将通过分析一张清晰明了的Java IO类层次图,详细介绍Java IO体系中的主要类及其关系。 #### 二、Java IO 类层次结构详解 ##### 2.1 字节流类层次结构 Java IO中的字节流类主要分为两大类:`InputStream`和`...

    java-IO框架图

    例如,javaio.bmp和javaio2.bmp可能是两张展示IO框架图的图片,其中详细描绘了不同类之间的继承关系和使用场景,帮助开发者更好地理解和掌握Java IO系统。 总结一下,Java IO框架是Java平台不可或缺的一部分,它为...

    Java版数据结构和IO结构图+JSTL详解

    其次,IO结构图是关于Java输入/输出系统的一种可视化表示。Java的IO库提供了丰富的类和接口,如InputStream、OutputStream、Reader、Writer、File、BufferedReader等,它们支持对文件、网络、内存等不同来源的数据...

    IO流结构图_io_java_思维导图_

    "IO流结构图_io_java_思维导图_" 提供了一个清晰的可视化工具,帮助开发者理解这一复杂主题。 首先,让我们了解一下什么是IO流。IO流是Java中的一个抽象概念,它将数据传输过程形象化为水流,分为输入流(Input ...

    Java IO流体系继承结构图_动力节点Java学院整理

    Java IO流体系继承结构图 Java IO流体系继承结构图是 Java 语言中 Input/Output 操作的核心部分,它们都是从基类 InputStream 和 OutputStream 继承而来的。Java IO流体系继承结构图可以分为两大部分:Reader-...

    javaIO详细讲解+详细案例

    #### 五、Java IO 流类图结构 Java IO流体系中,有几个核心的抽象基类,包括`InputStream`和`OutputStream`,它们是所有其他具体输入输出流类的基类。此外,还有`Reader`和`Writer`作为字符流的基类。 1. **输入...

    IO流体系继承结构图_动力节点Java学院整理

    Java的IO流体系是Java平台的核心特性之一,用于处理数据的输入和输出。这个体系结构设计得相当丰富和灵活,可以适应多种不同的场景。我们主要从两个方面来理解这个体系:对称性质和处理器模式。 首先,IO流的对称...

    java 体系结构图,不错的总结,复习的资料

    Java 体系结构图是理解Java编程语言及其生态系统的关键工具,尤其对于初学者而言,它能够清晰地展现Java的各个组成部分以及它们之间的关系。这个压缩包包含的“体系结构图”很可能是以图形形式展示了Java的核心概念...

    java IO流(包含类之间的关系图)

    Java IO流(包含类之间的关系图) Java IO流是Java语言中用于输入/输出操作的基础组件,涵盖了字节流和字符流两大类别。了解IO流的类之间的关系图是初学者学习Java IO流的基础。 字节流 字节流是Java IO流中最...

    深入分析javaIO的工作机制.doc

    ### 深入分析Java IO的工作机制 #### 一、引言 在现代软件开发中,输入/输出(Input/Output,简称IO)是至关重要的一个环节,它不仅关乎着程序与外部世界的交互,更是影响应用程序性能的关键因素之一。随着大数据...

    JAVA IO流缓冲字节流缓冲字符流等流经典代码示例加注释总结.rar

    2、常用21个IO流:FileWriter、FileReader、...3、JAVA IO流经典代码示例,示例从易到难。代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。

    JavaIo流分析图

    分析Java常用IO流,包括InputStream、OutputStream、FileInputStream、FileOutputStream、BufferedInputStream、BufferedOutputStream、Reader、Writer、InputStreamReader、OutputStreamWriter、FileReader、...

    java IO文档

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

    java_io详解

    ### Java IO详解 #### 1. 什么是IO 在计算机科学中,IO(Input/...理解Java IO的基本原理和类结构对于开发高效稳定的Java应用程序至关重要。通过合理选择和组合不同的流类,开发者可以轻松实现各种复杂的IO功能。

    彻底明白java的io系统

    Java的IO系统是Java编程中的核心部分,它允许程序与外部世界进行数据交换,包括读取文件、写入文件、网络通信以及设备交互等。理解并掌握Java的IO系统对于任何Java开发者,尤其是新手,都是至关重要的。在这个实例...

    java的IO简单实例

    4. **try-with-resources** 结构:在Java 7及以上版本,可以使用此结构自动关闭流,避免资源泄露。 5. **IOException**:IO操作可能会出现错误,如文件不存在或无法访问,因此需要捕获并处理IOException。 6. **...

    Java图书管理系统(IO流版)(csdn)————程序.pdf

    * 掌握Java的基本语法,包括变量、数据类型、运算符、控制结构、方法、数组等。 * 熟悉使用Java的基本数据类型,例如int、double、String等。 * 了解Java的运算符优先级和associativity。 二、流程控制 * 理解Java...

    关于java知识结构图

    "关于java知识结构图"提供了一种视觉化的学习资源,帮助初学者更好地理解和掌握Java的核心概念。以下是对Java知识结构的详细解读: 1. **基础语法**:Java的基础语法包括变量、数据类型、运算符、流程控制(如if...

Global site tag (gtag.js) - Google Analytics