我知道這裏有幾個類似的有問題的問題,但其中大多數人已經忘記在其流上放置close()
指令。這裏有所不同。資源泄漏:'in'永遠不會關閉,儘管它已關閉
可以說我有以下的小例子:
public void test() throws IOException
{
InputStream in;
if(file.exists())
{
in = new FileInputStream(file);
}
else
{
in = new URL("some url").openStream();
}
in.close();
}
這給我在Eclipse(朱諾SR1)一Resource leak: 'in' is never closed
警告。 但是當我移動到in.close()
的條件塊,警告消失:
public void test() throws IOException
{
InputStream in;
if(file.exists())
{
in = new GZIPInputStream(new FileInputStream(file));
in.close();
}
else
{
in = new URL("some URL").openStream();
}
}
這到底是怎麼回事?
警告其中。 IDE? Java編譯?哪個IDE?哪個版本? – Gimby
*「......警告消失:」*。哪些警告? –
你應該有一個try/finally塊。在finally塊中關閉流,以確保在拋出異常時不會錯過。 – duffymo