Reputation: 198328
Commons-IO has an IOUtils.toString(inputStream)
method, which can read all content from an input stream:
InputStream input = getInputStream();
String content = IOUtils.toString(input);
My question is shall I close the input stream manually after using it?
I thought IOUtils may close it since it has read all the content, but I can't find that in the source code.
Upvotes: 40
Views: 15058
Reputation: 524
Yes, and InputStream is now AutoCloseable so you can do:
try(InputStream input = getInputStream())
Upvotes: 0
Reputation: 692073
The javadoc says:
Wherever possible, the methods in this class do not flush or close the stream. This is to avoid making non-portable assumptions about the streams' origin and further use. Thus the caller is still responsible for closing streams after use.
Upvotes: 43