-3

好吧,我的问题是,如果说我正在制作这样的文件

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

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

4

3 回答 3

2

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

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

然后你可以调用该createNewFile()方法来最终创建你的新文件。

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

于 2013-08-21T02:24:22.963 回答
2

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

于 2013-08-21T02:25:46.297 回答
2

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

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

如果它们不存在,则创建必要的目录。null(如果您确定指定了父目录,无论是否存在,则不需要检查f。)之后,您可以调用

f.createNewFile();

创建文件本身。请注意,如果您在创建目录之前尝试创建文件,您将获得一个IOException.

于 2013-08-21T02:28:01.507 回答