如果我这样做:
File f = new File("c:\\text.txt");
if (f.exists()) {
System.out.println("File exists");
} else {
System.out.println("File not found!");
}
然后文件被创建并始终返回“文件存在”。是否可以在不创建文件的情况下检查文件是否存在?
EDIT:
我忘了说它是在 for 循环中。所以这是真实的事情:
for (int i = 0; i < 10; i++) {
File file = new File("c:\\text" + i + ".txt");
System.out.println("New file created: " + file.getPath());
}
当你实例化一个File
,您不会在磁盘上创建任何内容,而只是构建一个可以调用某些方法的对象,例如exists()
.
这很好而且很便宜,不要试图避免这种实例化。
The File
实例只有两个字段:
private String path;
private transient int prefixLength;
这是构造函数:
public File(String pathname) {
if (pathname == null) {
throw new NullPointerException();
}
this.path = fs.normalize(pathname);
this.prefixLength = fs.prefixLength(this.path);
}
如您所见,File
实例只是路径的封装。创建它以便调用exists()
是正确的继续方法。不要试图优化它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)