java-fFile-mkdir与createNewFile的先后执行
java中的File类中,mkdir是创建文件夹,createNewFile是创建文件。
但当两个函数先后执行的时候,产生的结果不同。
上面是代码运行前的状态。
执行代码如下:
File f = new File("d:\\test\\a");
f.mkdir();
f.createNewFile();
运行完的状态如下:
并没有创建名字为“a”的文件,只创建了文件夹。
如果将创建文件夹和文件的代码顺序倒置呢?
首先先把“a”文件夹删除
执行代码如下:
File f = new File("d:\\test\\a");
f.createNewFile();
f.mkdir();
结果如下:
创建了文件,而没有创建文件夹。
在上面的基础上继续实验mkdirs()函数,创建文件夹代码如下:
File f = new File("d:\\test\\a\\b\\c");
f.mkdirs();
f.mkdirs();
这样执行的话,由于有a文件存在,导致无法创建到c文件夹,test文件夹下仍然只有a文件。
紧接着,删除a文件后,再执行上面代码。
c文件夹才成功的创建出来
总结:当file对象的路径名称相同的时候,要注意其同名的文件夹或文件是否已经存在,否则可能导致创建文件夹或文件失败(存在文件夹,导致创建文件失败,反之亦然)。用mkdirs创建循环文件的时候,也要注意同名文件的存在。