为什么中文读出来是乱码?

buchixiawen_li 2009-09-28 07:46:10

public static void main(String[] args)
{
FileInputStream fis=new FileInputStream("f:/doc/1.txt");
while(fis.available()!=0)
{
int len=fis.read();
Thread.sleep(500);
System.out.print((char)len);
}
fis.close();
}


f:/doc/1.txt中的汉字打印出来是乱码,要怎么改,才能以汉字的形式显示出来啊?
...全文
93 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
buchixiawen_li 2009-09-28
  • 打赏
  • 举报
回复
谢谢1楼朋友的提示,谢谢3楼朋友的代码,谢谢所有朋友的关心.我解决了问题啦!

这段代码主要就是实现每500毫秒打印出文件中的一个字,就是这样.

2楼的朋友说我的代码有点问题,我找了半天,没找出来,给点提示,谢谢!
zhongweijian 2009-09-28
  • 打赏
  • 举报
回复
java io写文件时写到文件的中文都成乱码,在windows是没问题的,主要是linux下默认字符集是utf-8,而windows默认编码是gbk,所以java 往文件里面写入中文时是根据系统默认字符集来写的。可以有两种方法,

1.在java io往文件写时强制用系统编码写,

String fileEncode = System.getProperty("file.encoding");
File outFile = new File(path+separator+fileName);
if(!outFile.exists()){
outFile.createNewFile();
}
else{
outFile.delete();
outFile.createNewFile();
}

OutputStreamWriter ow=new OutputStreamWriter(new FileOutputStream(outFile),fileEncode);
for(int i=0;i<failList.size();i++)
{
ow.write(new String(failList.get(i).getBytes("UTF-8"),fileEncode)+"\r\n");
}
ow.close();

铑枪--突廆孒 2009-09-28
  • 打赏
  • 举报
回复

BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("filename"),"encoding"));//encoding为文件编码,如utf-8,gbk,gb2312等,也可以是一个Charset对象,具体看API文档
//然后使用br.readLine()来读取一行数据...
String line;
while((line=br.readLine())!=null)
{
System.out.println(line);
}
若鱼1919 2009-09-28
  • 打赏
  • 举报
回复

public static void main(String[] args)throws Exception
{
FileReader fr=new FileReader(new File("f:/doc/1.txt"));
int ch=0;
while((ch=fr.read())!=-1)
{
System.out.print((char)ch);
}
fr.close();
}
rookie001 2009-09-28
  • 打赏
  • 举报
回复
eg:FileInputStream fis=new FileInputStream("f:/doc/1.txt");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);

BufferedReader 里有个超好用的方法 readLine()

另外,楼主的程序好像本身有点问题
rookie001 2009-09-28
  • 打赏
  • 举报
回复
很简单,你是用的字节流,而中文是两字节表示的,当然是乱码的
用字符流就行啦

62,616

社区成员

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

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