I/O流
I/O流的输入输出都是相对程序
I/O(Input/Output)流分为以下3类:
-
字节流和字符流
- 根据流操作的数据单位不同
- 字节流:以字节为单位进行数据的读写,每次读写一个或者多个字节数据
- 字符流:以字符为单位进行数据的读写,每次读写一个或者多个字符数据
-
输入流和输出流
- 根据流传输方向的不同
- 输入流:只能从流中读取数据,而不能向其写入数据
- 输出流:只能从流中写入数据,而不能向其读取数据
-
节点流和处理流
- 根据流功能的不同
- 节点流:也称为低级流,可以从一个特定的I/O设备(如磁盘)读写数据流,只能直接连接数据源,进行数据的读写操作
- 处理流:也称为高级流,用于对一个已经存在的节点流进行连接和封装,通过封装后的流来实现流的读写能力。当使用处理流时,程序不会直接连接到实际的数据源,而是连接在已存在的流之上。
Java中的I/O流主要定义在java.io包中,其中4个类为流的顶级类:分别为InputStream和OutputStream,Reader和Writer。InputStream和OutputStream为字节流,Reader和Writer是字符流;InputStream和Reader为输入流,OutputStream和Writer为输出流。I/O流顶级类的分图如下: