目录

1. 什么是 IO 流

2. IO 流的分类


1. 什么是 IO 流

流是个抽象的概念,是对输入输出设备的抽象。Java 程序中,对于数据的输入/输出操作都是以 “ IO 流” 的方式进行,设备可以是文件、网络、内存等。流具有方向性,至于是输入流还是输出流则是一个相对的概念,一般以程序为参考,如果数据的流向是程序至设备,则称为输出流,反之称为输入流。可以将流想象成一个“水流管道”,每次需要读写数据时,都会在设备与程序之间建立一条用来传输数据的管道,数据就像水流一样从设备流向程序(读),或者从程序流向设备(写)。

二、Java中的 IO 流概述

数据在计算机中都是以二进制的形式存储。拿 .txt 文件来说,它的数据就是以二进制的形式存储于计算机的硬盘之中。若此时用文本编辑器打开这个文件,实际上就是在文本编辑器与 .txt 文件之间建立了数据流,然后这些二进制数据源源不断的流向文本编辑器,并在文本编辑器中根据各种编码表转化为相应的字符:如 97 在文件中以二进制 01100001 存储,读入文件编辑器中对照 ASCⅡ 编码表转化为字符 'a' 显示在文本编辑器中。

2. IO 流的分类

Java 中定义了许多类专门负责各种方式的输入或者输出,这些类都被放在 java.io 包中。按照传输数据类型的不同,大体上分为两类:一类是针对二进制文件的字节流,另一类是针对文本文件的字符流。其中,所有的字节流类都继承了输入流 InputStream 类和输出流 OutputStream 类;而所有的字符流类都继承了输入流 Reader 类和输出流 Writer 类。这两种流最大的不同就在于字节流是以字节为单位进行数据传输的,而字符流是以字符为单位进行数据传输。

(1)字节流的层次结构图:

二、Java中的 IO 流概述

二、Java中的 IO 流概述

 (2)字符流的层次结构图

二、Java中的 IO 流概述

二、Java中的 IO 流概述

相关文章: