前言
流可以看成一种单向数据传输通道。该通道允许以字节单位读/写数据,因此能传输任何类型的数据。
以使用者为参照,根据数据传输方向不同可分为输入流和输出流:
- 输入流:提供读操作,供用户从流中读取数据;
- 输出流:提供写操作,供用户向流中写入数据;
Java预定义的I/O情形非常多:
- 针对文件的I/O
- 线程间I/O
- 缓冲区I/O
- 等…
I/O流的总体设计
字符流:
用于传输纯文本信息,如源程序。
流中数据以16位的UTF-16字符位为单位进行读/写。
字节流:
用于传输任何数据,如图像、视频,当然也包括源程序。
流中数据以8位字节为单位进行读/写。