好吧,我的问题是,如果说我正在制作这样的文件
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
不会创建文件/文件夹,它只会打开一个文件,除非您调用该方法createNewFile()
,该方法将创建一个具有指定名称的文件(不是文件夹)。所以,不,它不会
创建File
对象本身永远不会创建文件或目录。你可以打电话
File f2 = f.getParentFile();
if (f2 != null) f2.mkdirs();
如果它们不存在,则创建必要的目录。null
(如果您确定指定了父目录,无论是否存在,则不需要检查f
。)之后,您可以调用
f.createNewFile();
创建文件本身。请注意,如果您在创建目录之前尝试创建文件,您将获得一个IOException
.