字节流和字符流的区别
- 字节流是由字节组成的,处理单元为一个字节,操作字节和字节数组。
- 字符流是由字符组成的,处理单元为 2 个字节的 Unicode 字符,操作字符,字符数组或字符串。
- 字节不需要解码编码,将字节转化为字符才需要进行解码编码的问题。
- 字节流可以从所有设备中读写数据,但字符流只能从文本格式的设备中读写数据。
- FileInputSteam和FileOutputStream可以完成所有格式文件的复制。
- FileReader和FileWriter只能完成文本格式的复制,无法完成视频、音频等文件的复制。
- 字节流在操作时本身不会用到缓冲区,是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件。
总结:字符流是由 Java 虚拟机将字节流转化为 2 个字节的 Unicode 字符为单位的字符而成的。如果是音频、图片、歌曲,用字节流比较好,如果是关系到中文文本的,用字符流好点。
标签:字符,Java,字节,流是,IO,缓冲区,操作 From: https://www.cnblogs.com/feiqiangsheng/p/16632433.html