2014-09-25 211 views
-1

我将使用Apache公地方法:IOUtils.toString(InputStream, "UTF-8");我应该关闭传递给IOUtils的InputStream吗?

我应该关闭手动通过InputStream或库是足够聪明去关心它?

+2

如果您使用的是Maven和一个好的IDE,查看源代码只是一个简单的鼠标点击... – Puce 2014-09-25 12:45:21

+0

Javadoc说什么? – Puce 2014-09-25 12:45:37

+1

如果我是你,如果我打开它,我会自己关闭它。对我来说,图书馆关闭没有打开的InputStream并且不关闭它打开的InputStream是没有意义的。但正如@Puce所说,自己浏览源代码并不会带来什么伤害。 – 2014-09-25 12:55:35

回答

1

As @Puce和@RatshiḓahoWayne指出, javadoc中没有任何内容表示传递给toString()方法的输入流将被API关闭。

API关闭已将字节流转换为字符串所传递的流没有意义,因为如果该流支持reset,则该流可以由其他位置的应用程序重新读取。

以下是供您参考的文档。

public static String toString(InputStream input, 
       Charset encoding) 
         throws IOException 

获取的InputStream的内容作为使用指定 字符编码的字符串。

此方法在内部缓冲输入,因此不需要使用BufferedInputStream。

相关问题