java-File-mkdir与createNewFile的先后执行

java-fFile-mkdir与createNewFile的先后执行



java中的File类中,mkdir是创建文件夹,createNewFile是创建文件。
但当两个函数先后执行的时候,产生的结果不同。

java-File-mkdir与createNewFile的先后执行_第1张图片

上面是代码运行前的状态。

执行代码如下:
File f = new File("d:\\test\\a");
f.mkdir();
f.createNewFile();

运行完的状态如下:
java-File-mkdir与createNewFile的先后执行_第2张图片

并没有创建名字为“a”的文件,只创建了文件夹。
如果将创建文件夹和文件的代码顺序倒置呢?
首先先把“a”文件夹删除

执行代码如下:
File f = new File("d:\\test\\a");
f.createNewFile();
f.mkdir();

结果如下:
java-File-mkdir与createNewFile的先后执行_第3张图片

创建了文件,而没有创建文件夹。

在上面的基础上继续实验mkdirs()函数,创建文件夹代码如下:
File f = new File("d:\\test\\a\\b\\c");
f.mkdirs();
这样执行的话,由于有a文件存在,导致无法创建到c文件夹,test文件夹下仍然只有a文件。

紧接着,删除a文件后,再执行上面代码。
java-File-mkdir与createNewFile的先后执行_第4张图片
c文件夹才成功的创建出来


总结:当file对象的路径名称相同的时候,要注意其同名的文件夹或文件是否已经存在,否则可能导致创建文件夹或文件失败(存在文件夹,导致创建文件失败,反之亦然)。用mkdirs创建循环文件的时候,也要注意同名文件的存在。

你可能感兴趣的:(java)