流
流是个抽象的概念,是对输入输出设备的抽象;
在JAVA中,对于数据的输入/输出操作都是以“流”的方式进行。
设备可以是文件,网络,内存等。
流具有方向性,至于是输入还是输出,一般以程序为参考。如果数据的流向是程序至设备,称为输出流;反之称为输入流。
流分类
- 按照流的方向不同:分为输入流和输出流:
- 按照处理数据单位的不同:分为字节流(8位)和字符流(16位):
- 字节流:一次读入或读出是8位二进制。字节流处理单元为 1 个字节,操作字节和字节数组
- 字符流:一次读入或读出是16位二进制。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串(Java内用Unicode编码存储字符)
- 字节流和字符流的原理是相同的,只不过处理的单位不同而已。后缀是Stream是字节流,而后缀是Reader,Writer是字符流
- 按照功能不同:分为节点流和处理流:
- 节点流:直接与数据源相连,读入或读出:
- 直接使用节点流,读写不方便;处理流:与节点流一块使用,在节点流的基础上,再套接一层,是“连接”在已经存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。