为什么会出现字符流
为什么会出现字符流
由于字节流操作中文不是特别方便,所以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] }}
图文: