测试InputStream,读取一个中文文本,但发现在控制台上输出时,是乱码:
public class InputStream {
public static void main(String[] args) {
FileInputStream in = null;
int b;
long num = 0;
try {
//建立了一根管道,读取一个文件
in = new FileInputStream("L://Program Files//test.txt");
while((b=in.read())!= -1) {
System.out.print((char)b);
num ++;
}
} catch (FileNotFoundException e) {
System.out.println("找不到指定文件!");
System.exit(-1);
} catch (IOException e) {
System.out.println("文件读取错误");
System.exit(-1);
}
}
}
因为:
b=in.read())是读取一个字节,然后(char)b肯定会是乱码。
in = new FileInputStream("L://Program Files//test.txt");
BufferedReader br=new BufferedReader(new InputStreamReader(in));
String line=null;
while((line=br.readLine())!=null){
System.out.println(line);
}
br.close();
本文介绍了一个使用Java FileInputStream读取中文文本文件遇到乱码的问题,并提供了解决方案,通过BufferedReader结合InputStreamReader来正确读取和显示中文字符。
1090

被折叠的 条评论
为什么被折叠?



