Java字节流与字符流的区别

在Java关于I/O读写的API中,字符流处理的单元为 两个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。
Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。而类 InputStreamReader 和 OutputStreamWriter 处理字符流和字节流的转换。
记住一点,底层设备永远只接受字节数据,有时候要写字符串到底层设备,需要将字符串转成字节再进行写入。字符流是字节流的包装,字符流则是直接接受字符串,它内部将串转成字节,再写入底层设备,这为我们向IO设别写入或读取字符串提供了一点点方便。
字符向字节转换时,要注意编码的问题,因为字符串转成字节数组,
其实是转成该字符的某种编码的字节形式,读取也是反之的道理。
具体代码示例
方式一
【使用字节流输入,字节流输出。
使用了字节缓冲区】


方式二
【使用字符流输入,字符流输出。
使用了字符缓冲区】


方式三
【使用字符流输入,字符流输出,
没有使用缓冲区,直接读行】

原文地址:https://www.cnblogs.com/ipetergo/p/6218241.html