如何检查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(...)?