怎么用字符流读取txt文件的中文都会出现乱码呢

extendss 2011-05-07 11:08:32
package com.jiang.TextFile;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;



public class TextFile {
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("D://a.txt");
BufferedReader bu = new BufferedReader(fr);
char[] data =new char[2];
while(bu.read()!=-1){
System.out.println(bu.readLine());
}
}
}
字符流不是8个字节吗?一个中文在占2个字节。不明白哦……哥们帮我分析下谢谢
...全文
625 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jingxiaobo1987 2011-05-07
  • 打赏
  • 举报
回复
可以,但是可能会出现乱码哦,你要知道ANIS不能编码中文哦
24K純帥 2011-05-07
  • 打赏
  • 举报
回复
那是因为他们编码格式不统一。。
extendss 2011-05-07
  • 打赏
  • 举报
回复
那我可不可以改变WINDOW的TXT 编码?
xiedi1209 2011-05-07
  • 打赏
  • 举报
回复
我也遇到了同样的问题
minihacker 2011-05-07
  • 打赏
  • 举报
回复
首你确认你的txt的字符编码格式!!再用那编码去读那个TXT文本就要可以了~~你那个默认是使用UTF-8的~~
一般WINDOW的TXT默认是ANSI~~~即你本机的中文编码~~GBK~~你用那个READER类读~~是用UTF-8读的~~当然变乱码啦
菜继续 2011-05-07
  • 打赏
  • 举报
回复
while ((inputLine = bu.readLine()) != null) {
System.out.println(inputLine);
}
tianyu945473925 2011-05-07
  • 打赏
  • 举报
回复
定义char[]数组只是为了起到缓冲的作用,这样可以先将txt文件里的内容读到char数组里,然后再从char数组里一起读出打印出来,这种方法比较符合常理,更能起到保护电脑硬盘的作用,如果不用该方法,一个一个字符读的话,读取硬盘的频率会非常大,这样很伤电脑硬盘滴!另外提醒下,那个char数组的大小最好定大点,如果只定义为2那么定于不定义没有影响的,默认的就是一个2个字符一读的!
shenjiao080601 2011-05-07
  • 打赏
  • 举报
回复
程序好着呢,没问题啊,中文也能输出。。。。不过char[] data =new char[2];
这句没看出来用哪了
yang3wei 2011-05-07
  • 打赏
  • 举报
回复
这个问题我也遇到过,是因为字符编码的原因~
期待最终答案
Jhala_Main 2011-05-07
  • 打赏
  • 举报
回复
这个没问题啊。。。中文可以正常的输出的嘛。。。。。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧