加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – FindBugs:“可能无法关闭流” – 在InputStream的情况

发布时间:2020-12-15 08:33:01 所属栏目:Java 来源:网络整理
导读:在我的 Java代码中,我启动一个新进程,然后获取其输入流来读取它: BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); FindBugs在这里报告错误: may fail to close streamPattern id: OS_OPEN_STREAM,type: OS
在我的 Java代码中,我启动一个新进程,然后获取其输入流来读取它:

BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));

FindBugs在这里报告错误:

may fail to close stream
Pattern id: OS_OPEN_STREAM,type: OS,category: BAD_PRACTICE

我必须关闭另一个进程的InputStream吗?而且,根据its Javadoc,InputStream#close()什么都不做.那么这是一个误报,还是我在完成后真的应该关闭流程的输入流?

解决方法

在这种情况下,您希望关闭()Reader,它将关闭其底层流.是的,关闭流是一种很好的做法,即使你知道你正在查看的实现没有做任何事情(尽管事实上它确实在这里!).如果后来改变了怎么办?

FindBugs只是警告可能的错误;它不能总是确切知道.

最后是的,您的Java进程拥有您生成的进程和Process对象.你绝对需要关闭它和输出流.没有其他人在使用它们,并且,做这些事情以避免与OS相关的流程有趣的业务是很重要的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读