升级到Java 7后,我得到Eclipse标记的以下代码:
try (File file = new File(FILE_NAME)) {
file.delete();
}
Run Code Online (Sandbox Code Playgroud)
错误是:
资源类型File未实现java.lang.AutoCloseable
Java的文档中没有AutoCloseable文档中列出的文件:http: //docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html
所以除了添加catch块之外,建议的替代方案是什么?
正如Jeffrey在对该问题的评论中所说,您需要区分File和InputStream,例如FileInputStream.文件中没有任何内容可以关闭,但在流或阅读器中有一些东西要关闭.
try (FileInputStream fs = new FileInputStream (new File(FILE_NAME))) {
// do what you want with the stream
}
Run Code Online (Sandbox Code Playgroud)