Commons IO有一个IOUtils.toString(inputStream)
方法,它可以读取输入流中的所有内容:
InputStream input = getInputStream();
String content = IOUtils.toString(input);
我的问题是,我应该在使用输入流后手动关闭它吗?
我以为IOUtils可能会关闭它,因为它已经读取了所有内容,但我在源代码中找不到。
javadoc说:
只要可能,这个类中的方法都不会刷新或关闭流。这是为了避免对流的来源和进一步使用做出不可移植的假设。因此,调用方仍然负责在使用后关闭流。
是的,InputStream现在是可自动关闭的,因此您可以执行:
try(InputStream input = getInputStream())