IO流——处理流——转换流
1.转换流:字节流转换为字符流,为了处理乱码(编码集、解码集)
2.编码与解码的概念
(1)编码:字符 --------编码字符集---------> 二进制
(2)解码:二进制 -------解码字符集-----------> 字符
3.乱码的原因:
(1)编码和解码的字符集的不统一
//解码:byte ---> char 我的IDE默认解码字符集为gbk
String str = "中国";
//编码:char ---> byte
byte[] data = str.getBytes();
System.out.println(new String(data));
//设置与解码字符集相同的编码字符集 gbk
data = str.getBytes("gbk");
System.out.println(new String(data));
//设置编码集为utf-8
data = str.getBytes("utf-8");
System.out.println(new String(data));
(2)字节缺少,长度丢失
//解码:byte ---> char 我的IDE默认解码字符集为gbk
String str = "中国";
//编码:char ---> byte 设置与解码字符集相同的编码字符集 gbk
byte[] data = str.getBytes("gbk");
//当字节缺失时产生乱码
System.out.println(new String(data,0,1));