java读取文件乱码

FileReader Fr=null;
BufferedReader Br=null;
try {
Fr=new FileReader(Abs);Abs为通过JFileChooser获取的绝对路径,没有问题
Br=new BufferedReader(Fr);
String str="";
String allText="";
while((str=Br.readLine())!=null){
allText+=str+"\r\n";
}
System.out.print(allText);能够换行,乱码
jtf.setText(allText);不能换行,乱码(jta为JTextFiled对象)
} catch (Exception e1) {

e1.printStackTrace();
}finally{

try {
Fr.close();
Br.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
求高手指点,初学JAVA。

那是你选中的文件内容字符编码与jvm缺省的文件编码不一致,如unix下jvm缺省文件编码一般为iso8859-1,而你的文件内容可能使用了GBK,可使用如下代码:
FileInputStream fis = new FileInputStream(Abs);
InputStreamReader isr = new InputStreamReader(fis, "GBK"); //GBK替换成你文件内容使用的编码
BufferedReader br = new BufferedReader(isr);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-25
java文件读取的时候有中文就很出现乱码,通常获取到的文件中通常都是“iso8859-1”格式,需要转换为“UTF-8”格式。
如:String str = new String(str.getByte("iso8859-1"),"UTF-8");进行下强制转换后在进行读取即可。
备注:通常格式有GBK、UTf-8、iso8859-1、GB2312,如果上面的强制转换不成功,依次进行这些格式的尝试,肯定是可以解决问题的。
第2个回答  2013-10-09
直接在属性里面改改就可以了啊。
第3个回答  2013-10-09
我这里没有乱码,有没有可能,你的文件的编码方式的问题
相似回答