web-dev-qa-db-ja.com

commons-ioのIOUtils.toString(input)を使用した後、入力ストリームを手動で閉じる必要がありますか?

Commons-IO にはIOUtils.toString(inputStream)メソッドがあり、入力ストリームからすべてのコンテンツを読み取ることができます。

InputStream input = getInputStream();
String content = IOUtils.toString(input);

私の質問は、入力ストリームを使用した後、手動で閉じる必要がありますか?

IOUtilsはすべてのコンテンツを読み取ったので閉じる可能性があると思いましたが、ソースコードでそれを見つけることができません。

28
Freewind

javadoc は言う:

可能な限り、このクラスのメソッドはストリームをフラッシュしたり閉じたりしません。これは、ストリームのオリジンとそれ以上の使用について移植性のない仮定をすることを避けるためです。したがって、呼び出し元は、使用後にストリームを閉じる責任があります。

30
JB Nizet