如何检查Java中是否存在文件?

如何在打开Java文件之前检查文件是否存在? (相当于Perl的-e $filename )。

关于SO的唯一类似问题涉及写入文件,因此使用FileWriter来回答,这在这里显然不适用。

如果可能的话,我宁愿一个真正的API调用返回true / false,而不是一些“调用API打开一个文件,并捕获它引发一个异常,你检查文本中没有文件”,但我可以忍受后者。


使用java.io.File

File f = new File(filePathString);
if(f.exists() && !f.isDirectory()) { 
    // do something
}

我会建议使用isFile()而不是exists() 。 大多数情况下,您正在检查路径是否指向文件,而不仅仅指向它存在。 请记住,如果路径指向一个目录,则exists()将返回true。

new File("path/to/file.txt").isFile();

new File("C:/").exists()将返回true,但不允许您打开文件并将其作为文件读取。


通过在Java SE 7中使用nio,

import java.nio.file.*;

Path path = Paths.get(filePathString);

if (Files.exists(path)) {
  // file exist
}

if (Files.notExists(path)) {
  // file is not exist
}

如果两者都存在且不存在,则返回false,则无法验证文件的存在。 (也许无法访问此路径)

您可以检查路径是目录还是常规文件。

if (Files.isDirectory(path)) {
  // path is directory
}

if (Files.isRegularFile(path)) {
  // path is regular file
}

请检查这个Java SE 7教程。

链接地址: http://www.djcxy.com/p/13329.html

上一篇: How do I check if a file exists in Java?

下一篇: What is the difference between instanceof and Class.isAssignableFrom(...)?