java IO流

IO(Input  Output)流

IO流用来处理设备之间的数据传输,对数据的操做是经过流的方式,Java用于操做流的对象都在IO包中。java

完整IO流结构图以下:数组

 

 IO流分类网络

1. 处理的数据单位不一样:编码

(1)字符流spa

一次读入或读出是8位二进制。字节流处理单元为 1 个字节,操做字节和字节数组。code

(2)字节流对象

一次读入或读出是16位二进制。字符流处理的单元为 2 个字节的 Unicode 字符,分别操做字符、字符数组或字符串(Java内用Unicode编码存储字符)内存

2.数据流方向不一样:字符串

输入流,输出流io

3.功能不一样(流是否直接与特定的地方(如磁盘、内存、设备等)相连):

(1)节点流

节点流从一个特定的数据源读写数据。即节点流是直接操做文件,网络等的流,例如FileInputStream和FileOutputStream,他们直接从文件中读取或往文件中写入字节流。

(2)处理流

“链接”在已存在的流(节点流或处理流)之上经过对数据的处理为程序提供更为强大的读写功能,便是对一个已存在的流的链接和封装,经过所封装的流的功能调用实现数据读写。如BufferedReader。处理流的构造方法老是要带一个其余的流对象作参数。一个流对象通过其余流的屡次包装,称为流的连接。 

java.io包提供的类

以下图所示: