> 文档中心 > 为什么会出现字符流

为什么会出现字符流


为什么会出现字符流

由于字节流操作中文不是特别方便,所以Java就提供字符流

  • 字符流=字节流+编译码

  • 用字节流复制文本文件时,文本文件也会有中文,但是没有问题,原因是最终底层操作会自动进行字节拼接成中文,如何识别是中文的呢?
    答:汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数

  • 汉字的存储:
    如果是GBK编码是2个字节
    如果是UTF-8编码,占用3个字节

#以图文和代码的形式讲解
代码:

package Demo;import java.io.*;import java.nio.charset.StandardCharsets;import java.util.Arrays;public class Demo {    public static void main(String[] args) throws IOException { //汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数 String s="菜徐琨"; //如果是UTF-8编码,占用3个字节 byte[] bytes = s.getBytes("UTF-8"); System.out.println(Arrays.toString(bytes));//[-24, -113, -100, -27, -66, -112, -25, -112, -88] //如果是GBK编码是2个字节 byte[] bytes1 = s.getBytes("GBK"); System.out.println(Arrays.toString(bytes1));//[-78, -53, -48, -20, -25, -5]    }}

图文:
柏维怡我爱你