本文主要是针对 Java I/O 流的相关介绍,包含流分类、类结构、以及常见的使用方法规律等。

流的概念

Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列。流是一组有顺序的,有起点和终点的字节集合,流是一组有顺序的,有起点和终点的字节集合。

流的分类

  • 根据处理数据类型的不同分为:字符流和字节流
  • 根据数据流向不同分为:输入流和输出流

    字符流和字节流

    字节流和字符流的区别:

  • 读写单位不同:字节流以字节(8bit)为单位,字符流以字符(16bit)为单位,Java中的字符是Unicode编码,一个字符占用两个字节。

  • 处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。

    输入流和输出流

  • 流具有方向性,至于是输入流还是输出流则是一个相对的概念,一般以程序为参考,如果数据的流向是程序至设备,我们成为输出流,反之我们称为输入流

  • 对输入流只能进行读操作,对输出流只能进行写操作,程序中需要根据待传输数据的不同特性而使用不同的流

    致谢

    参考系列文章:skywang12345 - Java IO 系列
    如有侵权,请联系作者删除。