Eclipse 给我以下资源泄漏警告是否有原因:资源泄漏:'br' is never closed"?我正在谈论的代码在这篇文章的底部。
我认为我的 finally 块已经涵盖了所有内容,我的推理:
- res 只有在 FileInputStream 构造函数抛出时才为空,因此无需关闭任何内容
- 如果 InputStreamReader 构造函数抛出, res 将是输入流(例如格式错误的编码字符串),然后只有 InputStream 必须关闭,所以可以
- ETC...
那么我错过了什么?或者这可能是一个日食错误?
亲切的问候!
S。
public static String fileToString(String fileName, String encoding) throws IOException {
InputStream is;
InputStreamReader isr;
BufferedReader br;
Closeable res = null;
try {
is = new FileInputStream(fileName);
res = is;
isr = new InputStreamReader(is, encoding);
res = isr;
br = new BufferedReader(isr);
res = br;
StringBuilder builder = new StringBuilder();
String line = null;
while ((line = br.readLine()) != null) {
builder.append(line);
builder.append(LS);
}
return builder.toString();
} finally {
if (res != null) {
res.close();
}
}
}