那么我的问题是,如果说我正在做一个文件,像这样如果目录不存在,是否会创建一个文件?
File f = new File("THE_Folder/me.txt");
但“THE_Folder”犯规存在,该文件夹将仍然在最后,当我保存文件中创建的文件?它会创建“THE_Folder”和“me.txt”吗?
那么我的问题是,如果说我正在做一个文件,像这样如果目录不存在,是否会创建一个文件?
File f = new File("THE_Folder/me.txt");
但“THE_Folder”犯规存在,该文件夹将仍然在最后,当我保存文件中创建的文件?它会创建“THE_Folder”和“me.txt”吗?
不,它不会。但有一个方便的createNewFile()和mkdirs()方法。
更具体地说,使用mkdirs()
来创建目录,但是您首先需要调用getParentFile(),因为您不想创建名为me.txt的目录。
然后你可以调用createNewFile()
方法来最终创建你的新文件。
正如EJP所解释的,没有必要致电createNewFile()
,因为FileOutputStream
和FileWriter
会为您创建新文件。
创建一个File
对象本身并不会创建文件或目录。您可以拨打
File f2 = f.getParentFile();
if (f2 != null) f2.mkdirs();
如果它们不存在,则创建必要的目录。 (您不需要null
检查,如果你确定f
指定父目录,现有的或以其他方式)。在此之后,你可以调用
f.createNewFile();
创建该文件本身。请注意,如果您在创建目录之前尝试创建该文件,您将得到一个IOException
。
'f.getParentFile()。mkdirs()'实际上。 – EJP
@EJP - 很好的结果 –
当你尝试时发生了什么?顺便说一句,不是我的倒票。 –
-1:这个问题没有显示任何研究工作。请参阅[文档](http://docs.oracle.com/javase/7/docs/api/java/io/File.html#File(java.lang.String))。 – bdares
你曾尝试过吗? –