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

时间:2015-02-15 18:26:40

标签: java

升级到Java 7后,我得到Eclipse标记的以下代码:

    try (File file = new File(FILE_NAME)) {
        file.delete();          
    }

错误是:

  

资源类型File未实现java.lang.AutoCloseable

Java的文档中没有AutoCloseable文档中列出的文件: http://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html

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

1 个答案:

答案 0 :(得分:8)

正如杰弗里在问题评论中所说,你需要区分文件和输入流,例如:的FileInputStream。 文件中没有任何内容可以关闭,但在流或阅读器中有一些东西要关闭。

try (FileInputStream fs = new FileInputStream (new File(FILE_NAME))) {
    // do what you want with the stream
}