java 文件IO 读取乱码问题

Stringdetials="";Stringline="";StringBuffertemp=null;temp=newStringBuffer("");try{Buf... String detials="";
String line="";
StringBuffer temp=null;
temp=new StringBuffer("");
try {
BufferedReader br=new BufferedReader(new FileReader(path+"/"+title));
while((line=br.readLine())!=null)
{
temp.append(line);
}
detials=new String(temp);
br.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("====================="+detials);

为什么会这样?怎么解决?
展开
 我来答
Green142
2015-08-28 · TA获得超过355个赞
知道小有建树答主
回答量:190
采纳率:100%
帮助的人:102万
展开全部

比较简单的做法,利用FileReader。参见代码:

测试文件: b.txt

IoTest.java

运行结果:

百度网友489295667
2012-09-07 · TA获得超过2367个赞
知道小有建树答主
回答量:1471
采纳率:80%
帮助的人:289万
展开全部
原因:文件的字符集编码与java程序运行环境的字符集编码不一致。

解决方法:
BufferedReader br=new BufferedReader(new FileReader(path+"/"+title));

修改为
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("path+"/"+title"),"UTF-8"));

UTF-8,更换为文件所用编码
更多追问追答
追问
试了一下 还是乱码 不知道为什么
这和写android程序有关系吗
追答
你文件用的是什么编码?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
710371029
2015-08-08 · TA获得超过148个赞
知道小有建树答主
回答量:145
采纳率:100%
帮助的人:117万
展开全部
如果出现乱码的话,可以在读的时候getByte()。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乌光QS
2012-09-07 · TA获得超过1365个赞
知道小有建树答主
回答量:464
采纳率:100%
帮助的人:440万
展开全部
FileReader是用default编码读文件,所以你没法指定编码。要指定编码得先把文件用FileInputStream以stream的方式读出来,再用InputStreamReader来指定编码:
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(path+"/"+title)), "utf-8");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友200b114
2015-08-21 · TA获得超过261个赞
知道小有建树答主
回答量:324
采纳率:66%
帮助的人:170万
展开全部
编码问题,文件是什么编码就用什么编码读取
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式