我知道正確的做法是是否可以使用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