考慮這個碼流:關閉只有當它打開
FileOutputStream stream=null;
ObjectOutputStream objStr=null;
try
{
stream=new FileOutputStream(defaultFile);
objStr=new ObjectOutputStream(stream);
objStr.writeObject(obj);
objStr.close();
}
catch(FileNotFoundException e)
{
System.out.println("Il file "+ defaultFile+ " non è stato trovato\n");
}
catch(IOException e)
{
stream.close();
System.out.println("Si è verificato un problema di I/O nell' apertura dello stream");
}
在第二個catch塊,我關閉流,但我不知道它是否應該被關閉。
如果ObjectOutputStream的構造函數失敗,它會進入第二次catch,但我確定在這種情況下,FileOutputStream保持打開狀態嗎?
我應該寫一個finally塊來處理所有的異常嗎?
我很難弄清楚所有的情況。
而且我在哪裏關閉流? – 2012-04-02 10:48:06
@Ramy AI Zuhouri當模塊退出時,try-with-resources語句爲您關閉流。閱讀我給你的鏈接。 – Jeffrey 2012-04-02 14:03:26