Java中IO流简介_动力节点Java学院整理

2025-05-29 0 67

java io简介

java io系统的设计初衷,就是为了实现“文件、控制台、网络设备”这些io设置的通信。例如,对于一个文件,我们可以打开文件,然后进行读取和写入。在java 1.0中,java提供的类都是以字节(byte)为单位,例如,fileinputstream和fileoutputstream。而到了java 1.1,为了与国际化进行接轨,在java io中添加了许多以字符(unicode)为单位进行操作的类。

在java io的称呼中,我们经常会提到“输入”、“输出”等等概念。首先,什么是呢?

所谓“”,就是一种抽象的数据的总称,它的本质是能够进行传输。

a) 按照“”的数据向,可以将其化分为:输入和输出

b) 按照“”中处理数据的单位,可以将其区分为:字节和字符。在java中,字节是占1个byte,即8位;而字符是占2个byte,即16位。而且,需要注意的是,java的字节是有符号类型,而字符是无符号类型!

java io框架

有了上面的基本概念之后,我们看看java io的框架。

1. 以字节为单位的输入的框架图

下面,是以字节为单位的输入的框架图。

Java中IO流简介_动力节点Java学院整理

从中,我们可以看出。

(01) inputstream 是以字节为单位的输入的超类。inputstream提供了read()接口从输入中读取字节数据。

(02) bytearrayinputstream 是字节数组输入。它包含一个内部缓冲区,该缓冲区包含从中读取的字节;通俗点说,它的内部缓冲区就是一个字节数组,而bytearrayinputstream本质就是通过字节数组来实现的。

(03) pipedinputstream 是管道输入,它和pipedoutputstream一起使用,能实现多线程间的管道通信。

(04) filterinputstream 是过滤输入。它是datainputstream和bufferedinputstream的超类。

(05) datainputstream 是数据输入。它是用来装饰其它输入,它“允许应用程序以与机器无关方式从底层输入中读取基本 java 数据类型”。

(06) bufferedinputstream 是缓冲输入。它的作用是为另一个输入添加缓冲功能。

(07) file 是“文件”和“目录路径名”的抽象表示形式。关于file,注意两点:

a), file不仅仅只是表示文件,它也可以表示目录!

b), file虽然在io保重定义,但是它的超类是object,而不是inputstream。

(08) filedescriptor 是“文件描述符”。它可以被用来表示开放文件、开放套接字等。

(09) fileinputstream 是文件输入。它通常用于对文件进行读取操作。

(10) objectinputstream 是对象输入。它和objectoutputstream一起,用来提供对“基本数据或对象”的持久存储。

2. 以字节为单位的输出的框架图

下面,是以字节为单位的输出的框架图。

Java中IO流简介_动力节点Java学院整理

从中,我们可以看出。以字节为单位的输出的公共父类是outputstream。

(01) outputstream 是以字节为单位的输出的超类。outputstream提供了write()接口从输出中读取字节数据。

(02) bytearrayoutputstream 是字节数组输出。写入bytearrayoutputstream的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 tobytearray() 和 tostring() 获取数据。

(03) pipedoutputstream 是管道输出,它和pipedinputstream一起使用,能实现多线程间的管道通信。

(04) filteroutputstream 是过滤输出。它是dataoutputstream,bufferedoutputstream和printstream的超类。

(05) dataoutputstream 是数据输出。它是用来装饰其它输出,它“允许应用程序以与机器无关方式向底层写入基本 java 数据类型”。

(06) bufferedoutputstream 是缓冲输出。它的作用是为另一个输出添加缓冲功能。

(07) printstream 是打印输出。它是用来装饰其它输出,能为其他输出添加了功能,使它们能够方便地打印各种数据值表示形式。

(08) fileoutputstream 是文件输出。它通常用于向文件进行写入操作。

(09) objectoutputstream 是对象输出。它和objectinputstream一起,用来提供对“基本数据或对象”的持久存储。

3. 以字节为单位的输入和输出关联的框架图

输入和输出都有对应的关系,下面是将以字节为单位的输入和输出关联起来的图片。

Java中IO流简介_动力节点Java学院整理

4. 以字符为单位的输入的框架图

下面,是以字符为单位的输入的框架图。

Java中IO流简介_动力节点Java学院整理

从中,我们可以看出。以字符为单位的输入的公共父类是reader。

Java中IO流简介_动力节点Java学院整理

(01) reader 是以字符为单位的输入的超类。它提供了read()接口来取字符数据。

(02) chararrayreader 是字符数组输入。它用于读取字符数组,它继承于reader。操作的数据是以字符为单位!

(03) pipedreader 是字符类型的管道输入。它和pipedwriter一起是可以通过管道进行线程间的通讯。在使用管道通信时,必须将pipedwriter和pipedreader配套使用。

(04) filterreader 是字符类型的过滤输入

(05) bufferedreader 是字符缓冲输入。它的作用是为另一个输入添加缓冲功能。

(06) inputstreamreader 是字节转字符的输入。它是字节通向字符的桥梁:它使用指定的 charset 读取字节并将其解码为字符。

(07) filereader 是字符类型的文件输入。它通常用于对文件进行读取操作。

5. 以字符为单位的输出的框架图

下面,是以字符为单位的输出的框架图。

(01) writer 是以字符为单位的输出的超类。它提供了write()接口往其中写入数据。

(02) chararraywriter 是字符数组输出。它用于读取字符数组,它继承于writer。操作的数据是以字符为单位!

(03) pipedwriter 是字符类型的管道输出。它和pipedreader一起是可以通过管道进行线程间的通讯。在使用管道通信时,必须将pipedwriter和pipedwriter配套使用。

(04) filterwriter 是字符类型的过滤输出

(05) bufferedwriter 是字符缓冲输出。它的作用是为另一个输出添加缓冲功能。

(06) outputstreamwriter 是字节转字符的输出。它是字节通向字符的桥梁:它使用指定的 charset 将字节转换为字符并写入。

(07) filewriter 是字符类型的文件输出。它通常用于对文件进行读取操作。

(08) printwriter 是字符类型的打印输出。它是用来装饰其它输出,能为其他输出添加了功能,使它们能够方便地打印各种数据值表示形式。

6. 以字符为单位的输入和输出关联的框架图

下面是将以字符为单位的输入和输出关联起来的图片。

Java中IO流简介_动力节点Java学院整理

7. 字节转换为字符的框架图

在java中,字节能转换为字符,下面是它们的转换关系图。

Java中IO流简介_动力节点Java学院整理

从中,我们可以看出。

(01) filereader继承于inputstreamreader,而inputstreamreader依赖于inputstream。具体表现在inputstreamreader的构造函数是以inputstream为参数。我们传入inputstream,在inputstreamreader内部通过转码,将字节转换成字符。

(02) filewriter继承于outputstreamwriter,而outputstreamwriter依赖于outputstream。具体表现在outputstreamwriter的构造函数是以outputstream为参数。我们传入outputstream,在outputstreamwriter内部通过转码,将字节转换成字符。

8. 字节和字符的输入对应关系

Java中IO流简介_动力节点Java学院整理

9. 字节和字符的输出对应关系

Java中IO流简介_动力节点Java学院整理

认识了java io的总体框架之后。接下来,我们可以开始对其中的各个类进入学习,包括“它的作用和用法,源码的探索”等方面。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Java中IO流简介_动力节点Java学院整理 https://www.kuaiidc.com/116368.html

相关文章

发表评论
暂无评论