我读了File
班javadoc。这是在那里写的:
通过转换给定的路径名字符串来创建新的File实例 成为一个抽象的路径名。如果给定的字符串是空字符串, 然后结果是空的抽象路径名。
问题:是否保证如果文件不存在则不会创建空文件或者它取决于系统?我在RedHat linux上尝试过它,只有在创建OutputStream
后才会创建一个空文件。
从java到我并不明显。
答案 0 :(得分:4)
是的,保证不会通过调用new File()
来创建文件。如果您拨打createNewFile()
,就会创建。
模式可能是:
File f = new File(filePathString);
if(f.exists() && !f.isDirectory()) {
// do something
} else {
f.createNewFile();
}
答案 1 :(得分:1)
当您查看构造函数中的源代码时,您会看到创建一个新的File实例只是初始化一些内部变量:
public File(String pathname) {
if (pathname == null) {
throw new NullPointerException();
}
this.path = fs.normalize(pathname);
this.prefixLength = fs.prefixLength(this.path);
}
因此,只创建一个新的File对象不会导致创建新文件。