我的问题是,如果说我正在制作一个像这样的文件
File f = new File("THE_Folder/me.txt");
但文件夹“THE_Folder”不存在,当我保存文件时,文件仍然会在最后创建吗?它会创建“THE_Folder”和“me.txt”吗?
答案 0 :(得分:3)
不,不会。但是有一个方便的createNewFile()和mkdirs()方法。
更具体地说,使用mkdirs()
创建目录,但是您首先要调用getParentFile(),因为您不想创建名为me.txt的目录。
然后,您可以调用createNewFile()
方法最终创建新文件。
正如EJP解释的那样,没有必要致电createNewFile()
,因为FileOutputStream
和FileWriter
将为您创建新文件。
答案 1 :(得分:2)
File
不创建文件/文件夹,它只是打开一个文件,除非你调用方法createNewFile()
,它将创建一个具有指定名称的文件(不是文件夹)。所以,不,它不会
答案 2 :(得分:2)
创建一个File
对象本身永远不会创建文件或目录。你可以打电话
File f2 = f.getParentFile();
if (f2 != null) f2.mkdirs();
如果它们不存在,则创建必要的目录。 (如果您确定null
指定父目录(现有或其他目录),则不需要f
检查。)之后,您可以调用
f.createNewFile();
创建文件本身。请注意,如果您在创建目录之前尝试创建文件,则会得到IOException
。