1.输入/输出流的分类
java.io包中定义了多个流类型(类或抽象类)来实现输入、输出功能;可以从不同的角度对其进行分类:
1) 按数据流的方向不同可以分为输入流和输出流。输入流和输出流的可以这样来理解,例如,读取一份文件,对于文件来说是输出,而对于计算机来说是输入,然而我们平时都是面向计算机的,所以是输出;反之亦然。
2) 按处理数据单位不同可以分为字节流和字符流。什么是字节流?什么是字符流?其实字节流就是计算机最原始的流,也就是读取数据时采用数字’0’和’1’的方式,一个字节流是以8位数读取;字符流就是一个字符一个字符流往外读,在java的程序里是采用Unitcode来读取。
3) 按照功能不同可以分为节点流和处理流。我们知道,java中对流的处理方法就是在java.io包下的。而这里节点流就是读取最原始的数据,即数字’0’和’1’的形式,而处理流就是拿到节点流之后我们继续套上其它的函数来处理这些字节。例如,将节点转化为字符等。
J2SDK所提供的所有流类型位于包java.io内部分别继承自以下四种抽象类型。
2.节点流和处理流
1) 节点流为可以从一个特定的数据源(节点)读写数据(如:文件,内存)
2) 处理流是“连接”在已存在的流(节点或处理流)之上通过对数据的处理为程序提供更为强大的读写功能。