s-day10-使用FileReader读取中文产生的乱码问题

This commit is contained in:
2026-08-12 09:50:30 +08:00
parent 51325f926a
commit 1fbd517efa
2 changed files with 28 additions and 1 deletions
@@ -15,7 +15,7 @@ public class Demo04 {
String readLine() 读一行文字。 String readLine() 读一行文字。
*/ */
// BufferedReader br = new BufferedReader(new FileReader("source2.txt")); // BufferedReader br = new BufferedReader(new FileReader("source2.txt"));
BufferedReader br = new BufferedReader(new FileReader("\\src\\com\\inmind\\buffered01\\Demo01.java")); BufferedReader br = new BufferedReader(new FileReader("s-day10\\src\\com\\inmind\\buffered01\\Demo01.java"));
/*String line = br.readLine(); /*String line = br.readLine();
System.out.println(line); System.out.println(line);
@@ -0,0 +1,27 @@
package com.inmind.transfer_stream02;
import java.io.FileReader;
/*
使用字符流,读取电脑中的文件数据到java内存
出现乱码的原因:中文数据在读写操作的前后的编码方式不一致.
注意:
1.UTF-8,字母和数字只占1个字节,而一个中文占3个字节,它的前128个字符完全兼容ASCII码表
2.GBK,字母和数字只占1个字节,而一个中文占2个字节,它的前128个字符完全兼容ASCII码表
*/
public class Demo06 {
public static void main(String[] args) throws Exception {
//字符输入流
// FileReader fr = new FileReader("D:\\io_test\\file_gbk.txt");//gbk编码,utf-8解码出现了乱码
FileReader fr = new FileReader("D:\\io_test\\file_utf8.txt");
//一次读取一个字符数组的方式
char[] chars = new char[1024];
int len;
while ((len = fr.read(chars)) != -1) {
System.out.println(new String(chars,0,len));
}
fr.close();
}
}