我知道正确的做法是是否可以使用FileReader从文件读取?
BufferedReader br = new BufferedReader(FileReader(file));
,但我在Java API检查的FileReader类的方法,它有一个read()
方法返回读取的字符。但它不适合我。我正在读取包含这行文本的文件:“正在读取文件”并将其打印到屏幕上,但是当我运行程序时,它会为每个字符打印相应的ASCII码。
这是我的代码:
String lectura = "";
try{
lectura = String.valueOf(fr.read());
} catch(IOException ioex){
ioex.printStackTrace();
}
while((Integer.parseInt(lectura)) != -1){
System.out.print(lectura);
try{
lectura = String.valueOf(fr.read());
} catch(IOException ioex){
ioex.printStackTrace();
}
}
几乎 - 整数不是ASCII值,FileReader使用平台的默认编码。 – 2012-02-27 01:02:08
好的,有什么区别? – CodeBlue 2012-02-27 01:03:15
那么,如果文件是用普通的7位ASCII字符编写的,那么就没有区别。但是,如果文本编辑器使用latin1编写它,fr.read()将返回一些不是有效ASCII码的int。 (或者它可能会返回废话,如果'Charset.defaultCharset()'是类似于UTF-8) – 2012-02-27 01:13:21