Java流在处理上分为字节流和字符流。字节流处理单元为 1 个字节的 Unicode 字符,字符流处理的单元为 2 个字节的 Unicode 字符
字节流:
在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream(stream结尾都是字节流)
字符流:
在字符流中输出主要是使用Writer类完成,输入流主要使用Reader类完成。(reader和writer结尾都是字符流)
字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的
字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容,说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不close的情况下输出内容
在所有的硬盘上保存文件或进行传输的时候都是以字节的方法进行的,而字符是只有在内存中才会形成的,字符必须先转换为字节。