面试题-IO
1:IO 流
Byte(字节)是计算机操作数据的最小单位由 8 位 bit 组成 取值(-128-127)
Char(字符)是用户的可读写的最小单位,在 Java 里面由 16 位 bit 组成 取值(0-65535)
1-1:为何还要有字符流在各种编码中,一个英文字符就是一个字节。如果只有英文就不会有问题,但是中文一般会占据多个字节。比如 Java 标准采用的 Unicode 编码中就占用两个字节,UTF-8 中占用三个字节,如果不知道字符编码,一次读取一个字节,可能就会将一个字符的多个字节分割开,导致乱码。
字符流是由 Java 虚拟机将字节转换得到的,问题就出在这个过程还算是非常耗时,并且,如果我们不知道编码类型就很容易出现乱码问题。所以, I/O 流就干脆提供了一个直接操作字符的接口,方便我们平时对字符进行流操作。如果音频文件、图片等媒体文件用字节流比较好,如果涉及到字符的话使用字符流比较好。
1-2:字节流和字符流区别
字节流操作的基本单位为字节,字符流操作的基本单元为 Unicode 单元。
字节流默认不使用缓冲区,字符流使用缓冲区
字节流通常用处理二进制数据,实际上 ...