1、什么是IO流?
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
2、分类方式
- 按流的数据单位不同:字节流和字符流。
字节流是最基础的,它能够处理所有的数据类型,包括图片和avi等,而字符流只能处理字符类型的数据。字符流是因为数据编码的不同,在字节流的基础上查了指定的编码。所以,只要是处理纯文本数据,就优先考虑使用字符流。除此之外都使用字节流。 - 按流的方向:输入流和输出流。
输入流就是从外部输入到计算机中,输出流是从计算机里面输出到外部。 - 按流的功能不同:节点流和处理流。
节点流是没有处理过的流,处理流是在节点流的基础上进行加工过的流。
3、主要的抽象类
根据流最基本的方向是输入和输出流,根据字符流和字节流组合输入输出流可以获得四个主要的抽象类,他们分别是,字符流中的输入流Reader,字符流中的输出流Writer,字节流中的输入流InputStream,字节流中的输出流OutputStream。
4、使用
首先看一张很常见的图,关于IO流的类基本在上面展示。
既然字符流是在字节流基础上,那么我们先来了解下字节流 的应用。
在这之前我们来了解些java中的File类。可以用
File file = new File(String pathName);
将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。我们的输入和输出和这个文件进行交互。
- 字节流输入