我有 Eclipse 发出以下警告:
Potential resource leak: '<unassigned Closeable value>' may not be closed
new BufferedWriter(...)
...对于以下片段中的表达式:
boolean useStdout = askUserWhetherToUseStdout();
Writer writer = useStdout ? new OutputStreamWriter(System.out) : new BufferedWriter(new FileWriter(new File(askUserForFilename())));
try {
writer.write("Hello World!");
}
finally {
writer.close();
}
这是误报吗?我理解整个Writer
事情的方式是,任何作家都会关闭其潜在的作家。在我的情况下,writer
将封装新的缓冲写入器(进而封装文件写入器),因此关闭writer
不应泄漏与缓冲写入器或其底层写入器关联的任何资源?
我在这里想念什么?