Java I/O流(一)I/O流概述
I/O(Input/Output)流,即输入输出流,是Java中实现输入输出的基础,它可以方便的实现数据的输入输出操作。
I/O流有很多种,按照不同的分类方式,可以分为以下3类:
1.字节流和字符流
根据流操作的数据单位不同,可以分为字节流和字符流。字节流以字节为单位进行数据的读写,每次读写一个或多个字节数据;
字符流以字符为单位进行数据的读写,每次读写一个或多个字符数据。
2.输入流和输出流
根据流传输方向的不同,又可分为输入流和输出流。其中输入流只能从流中读取数据,而不能写入数据;输出流只能从
流中写入数据,而不能从中读取数据
3.节点流和处理流(包装流)
根据流的功能不同,可以分为节点流和处理流。其中节点流也被称为低级流,是指从一个特定的I/O设备(如磁盘)读写数据的流,
它只能直接连接数据源,进行数据的读写操作;处理流也被称为高级流,它用于对一个已存在的节点流进行连接和封装,通过封装后的流
来实现流的读写能力。当使用处理流时,程序不会直接连接到实际的数据源,而是链接已存在的流之上。
Java中的I/O流只要定义在java.io包中,该包下定义了很多类,其中有4个类为流的顶级类,分别为 InputStream 和 OutputStream ,Reader
和 Writer。其中 InputStream和OutputStream是字节流,而Reader和writer是字符流;InputStream和Reader是输入流,而OutputStream和Writer
是输出流。分类如下:
其中4个顶级类,都为抽象类,并且是所有流类型的父类