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);
为什么会这样?怎么解决? 展开
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);
为什么会这样?怎么解决? 展开
6个回答
展开全部
原因:文件的字符集编码与java程序运行环境的字符集编码不一致。
解决方法:
BufferedReader br=new BufferedReader(new FileReader(path+"/"+title));
修改为
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("path+"/"+title"),"UTF-8"));
UTF-8,更换为文件所用编码
解决方法:
BufferedReader br=new BufferedReader(new FileReader(path+"/"+title));
修改为
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("path+"/"+title"),"UTF-8"));
UTF-8,更换为文件所用编码
更多追问追答
追问
试了一下 还是乱码 不知道为什么
这和写android程序有关系吗
追答
你文件用的是什么编码?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果出现乱码的话,可以在读的时候getByte()。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
FileReader是用default编码读文件,所以你没法指定编码。要指定编码得先把文件用FileInputStream以stream的方式读出来,再用InputStreamReader来指定编码:
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(path+"/"+title)), "utf-8");
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(path+"/"+title)), "utf-8");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编码问题,文件是什么编码就用什么编码读取
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询