Java中的InputStreams和OutputStreams close()銷燬了嗎?我完全理解這可能是不好的形式(尤其是C和C++世界),但我很好奇。Input/OutputStreams是否關閉銷燬?
此外,假設我有以下代碼:
private void foo()
{
final string file = "bar.txt";
Properties p = new Properties();
p.load(new FileInputStream(file));
//...
}
是否無名的FileInputStream超出範圍p.load()之後,因此被摧毀,有點像C++作用域規則?我試圖在Google上搜索Java的匿名變量作用域,但那並沒有達到我想的效果。
謝謝。
謝謝大家的幫助! – Calyth
請注意,在Java 7或更高版本中嘗試使用資源可以解決此問題相對簡單的操作(只需要一個額外的變量賦值,當然還有'try'本身)。另外請注意,上面的代碼會在我的Eclipse環境中生成警告(關於缺少的關閉)。 –