简短问题,
我看到一些旧代码中创建了一个 ByteArrayInputStream
,例如:
new BufferedReader(new InputStreamReader(new ByteArrayInputStream(somebytes)));
然后使用BufferedReader
逐行读取somebytes
。一切工作正常,但我注意到BufferedReader
从未关闭。这在一个长时间运行的WebSphere应用程序中工作,并且somebytes
不是非常大(最多200k),每周只调用几次,我们没有遇到任何明显的内存泄漏。因此,我认为所有对象都已成功垃圾回收。
我曾经学过输入/输出流需要在finally语句中关闭。 ByteStreams
是否例外?