黑马程序员技术交流社区
标题:
字节输入流读文件时, 方法1 中遇到中文字符为什么会变成?.
[打印本页]
作者:
黑马YJM
时间:
2016-7-29 14:57
标题:
字节输入流读文件时, 方法1 中遇到中文字符为什么会变成?.
本帖最后由 黑马YJM 于 2016-7-29 14:57 编辑
//class.txt 文件中有一句话: hello Java 我爱java
FileInputStream input = new FileInputStream("class.txt"); //读数据 方法1 结果: hello Java ??°?java
int in = -1;
while((in = input.read())!= -1){
System.out.print((char)in);
}
//读数据 方法2 结果:hello Java 我爱java
byte[] b = new byte[1024];
int bb = -1;
while((bb=input.read(b))!=-1){
System.out.println(bb);
System.out.println(new String(b,0,bb));
}
作者:
GCT
时间:
2016-7-29 16:21
gbk编码是两个字节表示一个中文,utf是三个字节表示一个中文,你read只能读取一个字节,也就是中文的一半,程序不知道这是什么,用?表示了。
作者:
黑马YJM
时间:
2016-7-29 21:05
GCT 发表于 2016-7-29 16:21
gbk编码是两个字节表示一个中文,utf是三个字节表示一个中文,你read只能读取一个字节,也就是中文的一半, ...
谢谢 我明白了.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2