Java中的InputStreams和OutputStreams在销毁时会自动执行close()吗?我完全理解这可能是个糟糕的做法(尤其是在C和C++的世界中),但我很好奇。
另外,假设我有以下代码:
private void foo()
{
final string file = "bar.txt";
Properties p = new Properties();
p.load( new FileInputStream(file) );
//...
}
在调用p.load()方法后,无命名的FileInputStream是否会超出作用域并因此被销毁,有点像C++的作用域规则吗?我曾尝试在Google上搜索Java的匿名变量作用域,但结果不是我预期的。
谢谢。
try
本身)。还要注意,上面的代码会在我的Eclipse环境中生成警告(关于缺少关闭)。 - Maarten Bodewes