當我們需要關閉一個輸出流時,我們有兩個選擇。我應該使用close方法還是close方法關閉輸出流?
close靜靜地表示關閉一個流,沒有例外拋出。
try { close(out) } catch(IOException e) { }
接近
try { close(out) } catch(IOException e) { throw anException; }
已知,輸出流會寫一個/幾個字符到文件關閉時,如果這些文字出現錯誤,該文件也不能結束正確打開如ZipoutputStream。
如果我使用第一個,我會遇到失敗關閉的風險。 如果我使用第二個,它會讓我的代碼不友好。
有人能給我一些建議嗎?
很抱歉不清楚地描述問題。
我的意思是如何安全地獲得IO操作。如果某個資源的發佈失敗,它會讓來電者知道。
感謝您的回答。尤其要感謝@Don羅比給我其中包含最佳回答@Fabian巴尼
[可以安全使用Apache commons-io IOUtils.closeQuietly?](http://stackoverflow.com/questions/14436453/is-it-safe-to-use-apache-commons-io- ioutils-closequietly) –
'catch(IOException e){throw anException; }'沒有意義 - 你需要聲明'拋出IOException'來做到這一點,所以你可以跳過try/catch – artbristol