为什么java.io.File没有实现Autocloseable?

Sal*_*cia 4 java

升级到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/Au​​toCloseable.html

所以除了添加catch块之外,建议的替代方案是什么?

Yon*_*oni 8

正如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)