JAVA——缓冲流 (字节流传输 汉字时会出现问题)
package com.cskaoyan.io02.introduction;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
* @author zhangshuai@Cskaoyan.onaliyun.com.
* @version 1.0
*
* 昨天我们已经,学习了字节流,下面我们首先通过字节流,完成如下功能:
1.向文本中写入数字或英文字符,然后将其读入内存,并在控制台上显示
2.向文本中写入中文字符,将其读入内存,并在控制台上显示
在一边读取中文字符,并一边显示的时候,出了问题,中文字符不能正确显示。
-> 在这样的场景下,我们使用字节流,操作字符数据不太好用
为啥中文字符不能正确显示呢? 因为一个中文字符,对应的整数值,要用多个字节数据,至少得有两个字节的数据表示一个中文字符
*/
public class Demo1 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("a.txt");
// 读取英文或数字字符,并显示
int readByte;
while ((readByte = fis.read()) != -1) {
char c = (char) readByte;
System.out.print(c);
}
System.out.println("你好");
}
}
当输入汉字时会出现乱码


浙公网安备 33010602011771号