流是一组有序的数据序列。
流的分类:
(1)根据操作的类型,分为输入流和输出流。
输入流的指向成为源,程序从指向源的输入流中读取源中的数据。当程序需要读取数据时,就会开启一个通向数据源的流,这个数据源可以是文件、内存或是网络连接。而输出流的指向是数据要去的目的地,程序通过向输出流中写入数据把信息传递到目的地。当程序需要写入数据时,就会开启一个通向目的地的流。
(2)根据操作的对象,分为字节流和字符流。
字节流以字节为单位来处理数据,由于字节流不会对数据做任何转换,因此用来处理二进制的数据。而实际中很多数据是文本,于是提出了字符流的概念,字符流用于处理字符数据的读取和写入,以字符为基本单位。
输入输出类之间的关系:
InputStream类是字节输入流的抽象类,它是所有字节输入流的父类。
OutputStream类是字节输出流的抽象类,它是所有字节输出流的父类。
Reader类是字符输入流的抽象类,它是所有字符输入流的父类。
Writer类是字符输出流的抽象类,它是所有字符输出流的父类。