静态检查文件是否存在

时间:2011-07-27 09:58:30

标签: java file io

我想知道是否存在某种方法来检查文件是否存在而不创建java.io.File的实例

我总是使用以下方式:

File f = new File("./path/to/file");
if (f.exists()) {
    doSomething();
}
else {
    manageError();
}

但是我知道我需要检查一些文件路径,以便创建像logger(使用log4j),xml编辑器和其他项目结构这样的元素,但我不需要使用它们。

因此我想知道这是否可行。

我正在使用J2SE-1.5_22。

提前致谢!

3 个答案:

答案 0 :(得分:5)

我不知道你在做什么有什么问题。创建File的实例不会在磁盘或任何内容上创建文件。如果需要,您可以随时编写静态方法:

public static boolean checkFileExists(string path)
{
    return new File(path).exists();
}

如果这不符合您的要求,请说明您尝试做的事情,但这与此无关。

答案 1 :(得分:1)

我认为原来java.io.File的作者认为如果你正在检查一个文件的存在,那么你可能会对它做一些事情:如果它存在则修改它或者如果不存在则创建一个新文件

Jon的解决方案是您应该添加到Utils的解决方法。 File对象非常轻巧,很容易丢弃。

答案 2 :(得分:0)

另一种方法是使用私有Java类。虽然我不建议,除非你知道你在做什么。

类似的东西:

public static boolean fileExists(File file) {
return ((FileSystem.getFileSystem().getBooleanAttributes(file) & FileSystem.BA_EXISTS) != 0);
}

虽然这段代码不能单独使用,因为FileSystem是一个私有类,但是用反射将它改成公共类,它应该可以工作。