【Java.IO】I/O 流,流的分类

流是个抽象的概念,是对输入输出设备的抽象;

在JAVA中,对于数据的输入/输出操作都是以“流”的方式进行。

设备可以是文件,网络,内存等。

【Java.IO】I/O 流,流的分类_第1张图片


流具有方向性,至于是输入还是输出,一般以程序为参考。如果数据的流向是程序至设备,称为输出流;反之称为输入流。

【Java.IO】I/O 流,流的分类_第2张图片


流分类

  • 按照流的方向不同:分为输入流输出流

  • 按照处理数据单位的不同:分为字节流(8位)字符流(16位)
    • 字节流:一次读入或读出是8位二进制。字节流处理单元为 1 个字节,操作字节和字节数组
    • 字符流:一次读入或读出是16位二进制。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串(Java内用Unicode编码存储字符)
    • 字节流和字符流的原理是相同的,只不过处理的单位不同而已。后缀是Stream是字节流,而后缀是Reader,Writer是字符流

  • 按照功能不同:分为节点流处理流
    • 节点流:直接与数据源相连,读入或读出:


    • 直接使用节点流,读写不方便;处理流:与节点流一块使用,在节点流的基础上,再套接一层,是“连接”在已经存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。



你可能感兴趣的:(Java.IO)