如果目录不存在,是否会创建文件?

时间:2013-08-21 02:20:09

标签: java

我的问题是,如果说我正在制作一个像这样的文件

File f = new File("THE_Folder/me.txt");

但文件夹“THE_Folder”不存在,当我保存文件时,文件仍然会在最后创建吗?它会创建“THE_Folder”和“me.txt”吗?

3 个答案:

答案 0 :(得分:3)

不,不会。但是有一个方便的createNewFile()mkdirs()方法。

更具体地说,使用mkdirs()创建目录,但是您首先要调用getParentFile(),因为您不想创建名为me.txt的目录。

然后,您可以调用createNewFile()方法最终创建新文件。

正如EJP解释的那样,没有必要致电createNewFile(),因为FileOutputStreamFileWriter将为您创建新文件。

答案 1 :(得分:2)

File不创建文件/文件夹,它只是打开一个文件,除非你调用方法createNewFile(),它将创建一个具有指定名称的文件(不是文件夹)。所以,不,它不会

答案 2 :(得分:2)

创建一个File对象本身永远不会创建文件或目录。你可以打电话

File f2 = f.getParentFile();
if (f2 != null) f2.mkdirs();

如果它们不存在,则创建必要的目录。 (如果您确定null指定父目录(现有或其他目录),则不需要f检查。)之后,您可以调用

f.createNewFile();

创建文件本身。请注意,如果您在创建目录之前尝试创建文件,则会得到IOException