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相关的流程有趣的业务是很重要的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |