字节流与字符流的区别主要有以下四个方面:
(1)读写单位不同
字节流以字节为单位,通常用来处理二进制文件;
字符流以字符为单位,在读写的时候根据码表映射,每个字符对应多个字节。
(2)处理对象不同
字节流能处理所有类型的数据(图片、音频),而字符流只能处理字符类型的数据
(3)处理方式不同
字节流中,InputStream是所有字节输入流的祖先,OutputStream是所有字节输出流的祖先;字符流中,Reader所有读取字符串输入流的祖先,Writer是所有输出字符串的祖先。
(4)缓冲区要求不同
字节流在操作本身不会使用缓冲区,是对文件本身进行操作。
字符流在操作的时候使用到了缓冲区,所以在操作字符流的时候不关闭是没有办法对写入数据进行保存的。