Commons-IO 提供了一个 IOUtils.toString(inputStream)
方法,可以从输入流中读取所有内容:
InputStream input = getInputStream();
String content = IOUtils.toString(input);
我的问题是:在使用完输入流后,我是否需要手动关闭它?我认为,由于IOUtils已经读取了所有内容,因此它可能会自动关闭输入流,但我无法在源代码中找到相关信息。Commons-IO 提供了一个 IOUtils.toString(inputStream)
方法,可以从输入流中读取所有内容:
InputStream input = getInputStream();
String content = IOUtils.toString(input);
我的问题是:在使用完输入流后,我是否需要手动关闭它?我认为,由于IOUtils已经读取了所有内容,因此它可能会自动关闭输入流,但我无法在源代码中找到相关信息。该 javadoc 说明:
在可能的情况下,本类中的方法不会刷新或关闭流。这是为避免对流的来源和进一步使用做出非便携式的假设。因此,调用者仍然有责任在使用后关闭流。
IOUtils.toString
读取内容时,除了关闭它之外,我从未需要在输入流上执行其他操作... - Freewind是的,InputStream现在是AutoCloseable的,所以你可以这样做:
try(InputStream input = getInputStream())