web-dev-qa-db-ja.com

JavaでInputStreamを閉じる必要がありますか?

私のコードは:

InputStream confFile=classLoader.getResourceAsStream("myconffile.properties");

ドキュメント内:

InputStreamのcloseメソッドは何もしません。

InputStreamを閉じる必要がないということですか?

42
user710818

言及したメソッドによって返されるストリームは、実際には FileInputStream またはファイルのハンドルを保持するInputStreamの他のサブクラスであるため、入力ストリームを閉じる必要があります。このストリームを閉じないと、リソースがリークします。

29
Boris Strandjev

いいえ、それは意味しません-InputStreamは抽象クラスであり、getResourceAsStream()close()メソッドが何かを実行する具体的なサブクラスを返す-最も重要なのはファイルハンドルを解放するためです。

20