IAd*_*ter 7 java findbugs stream
我发现findbugs出现严重错误:
该方法创建一个IO流对象,不将其分配给任何字段,将其传递给其他方法或返回它,并且似乎不会在方法之外的所有可能的异常路径上关闭它.这可能导致文件描述符泄漏.通常使用finally块来确保关闭流是个好主意.
try {
...
stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
...
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
try {
if (stdError != null) {
stdError.close();
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
Run Code Online (Sandbox Code Playgroud)
我是否InputStreamReader还需要关闭或p.getErrorStream(它返回InputStream)?
在创建BufferedReader对象时抛出异常会发生什么?InputStreamReader在垃圾收集器决定销毁对象的某个时间之前,由对象管理的流不会关闭.
如果在创建InputStreamReader对象时抛出异常,您可能会遇到类似的问题.
| 归档时间: |
|
| 查看次数: |
6538 次 |
| 最近记录: |