我想優化我的文件閱讀器功能,但不確定是否最佳做法是在try循環之外聲明空值。另外,循環和追加字符到Stringbuffer被認爲是不好的做法?我想在這裏使用異常處理,但也許最好使用另一種結構?任何建議最受歡迎,謝謝。Filereader null聲明和附加最佳做法
public String readFile(){
File f = null;
FileReader fr = null;
StringBuffer content = null;
try{
f = new File("c:/test.txt");
fr = new FileReader(f);
int c;
while((c = fr.read()) != -1){
if(content == null){
content = new StringBuffer();
}
content.append((char)c);
}
fr.close();
}
catch (Exception e) {
throw new RuntimeException("An error occured reading your file");
}
return content.toString();
}
}
'try(FileReader fr = new FileReader(「c:/test.txt」))'這在Java中是否合法?嘗試沒有抓住?嘗試使用參數?另外,如果你有一個try/catch塊,爲什麼要拋出IOException呢?最後,當您返回內容時,內容超出範圍。 – 2012-02-25 03:36:24
它在Java 7語法中是合法的。這在Java 6或更早版本中不起作用。看到這裏:http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html – 2012-02-25 04:14:52
@RyanAmos - 1)是的,它是合法的Java 7語法。 2)是的,嘗試沒有捕獲是合法的......見1)。 3)是的,見1)。 4)因爲我不捕獲IOException。 5)哎呀......我會解決這個問題的。 – 2012-02-25 04:57:11