当我使用以下代码创建文件时,它不会输出可见文件。它不会给出任何异常。在以下代码中存在输出。这意味着文件实际存在。但我看不出来。实际上这里发生了什么?
File file= new File("/folder/abc.txt");
if(file.exist)
System.out.println("exist");
答案 0 :(得分:6)
File file= new File("/folder/abc.txt");
永远不会创建实际文件。 有两种方法可以创建文件:
在File对象上调用createNewFile()方法。例如:
File file = new File("foo"); // no file yet
file.createNewFile(); // make a file, "foo" which
// is assigned to 'file'
创建Writer或Stream。具体来说,创建一个FileWriter,一个PrintWriter, 或FileOutputStream。每当您创建其中一个的实例时 类,您自动创建一个文件,除非已存在,例如
File file = new File("foo"); // no file yet
PrintWriter pw = new PrintWriter(file); // make a PrintWriter object AND
// make a file, "foo" to which
// 'file' is assigned, AND assign
// 'pw' to the PrintWriter
答案 1 :(得分:4)
这是一个文件抽象类,但它还没有创建任何文件。 From documentation:
An abstract representation of file and directory pathnames.
除了创建新文件之外,您还可以做很多事情,例如检查这样的文件或目录是否存在。
答案 2 :(得分:4)
创建文件实例不会在文件系统上创建文件。
您需要调用该实例的方法来在文件系统上创建文件
File f = new File("/folder/myfile");
if(!f.exists){
f.createNewFile();
}
答案 3 :(得分:3)
根据Java文档,
通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。如果给定的字符串是空字符串,则结果是空的抽象路径名。
仅创建一个实例。
使用file.createNewFile();
答案 4 :(得分:2)
您只是创建一个java对象,您需要使用:
File file= new File("/folder/abc.txt");
file.createNewFile();
答案 5 :(得分:2)
如果没有,请检查文件是否存在,然后创建新文件。
File file= new File("/folder/abc.txt");
if(!file.exists())
file.createNewFile();
答案 6 :(得分:2)
File file= new File("/folder/abc.txt");
创建java File对象,而不是真实文件。创建真正的文件调用:
file.createNewFile();
或使用Stream。例如:
FileOutputStream stream = new FileOutputStream(file);
答案 7 :(得分:0)
仅仅因为您创建了java.io.File
类的实例,文件系统上的该文件将不会立即创建。
你必须采取措施来实际创建它。您可以在此轻松找到相关信息。