java 中io 我用为什么乱码

来源:百度知道 编辑:UC知道 时间:2024/05/30 02:26:26
package com.lmdtc;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class TestFileReader {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
FileReader fr;
try {
fr = new FileReader("d:\\学习\\素材\\myT.txt");
while(fr.read() != -1){
System.out.print((char)fr.read());
}
fr.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
输出的东西乱码 为何

FileReader是读字符流的,你用fr.getEncoding()看看,编码格式应该不是GBK的!但又没有设置编码的方法,你可以用InputStreamReader来实现,
InputStreamReader in=new InputStreamReader(new FileInputStream("d:\\学习\\素材\\myT.txt"),"GBK");这样就把编码高为GBK,再输出就不会有乱码了吧!

在我电脑上跑你的代码没问题,你可能需要把你的.java文件的编码改成GBK

建立工程时要注意编码统一