前提
D盘存在文件夹a,文件D:/a/b/c 不存在
1、默认file.exists()、file.isFile()、file.isDirectory() 均返回 false
2、使用file.createNewFile() 创建文件 D:/a/b/c 出现异常,因为不存在文件夹b
3、使用file.mkdir() 创建文件夹 D:/a/b/c,无异常,但是创建不成功,因为不存在文件夹b
4、使用file.mkdirs() 创建 D:/a/b/c 文件夹,成功创建。
5、再次使用file.mkdir() 创建文件夹 D:/a/b/c,无异常,不能创建同名文件夹c
6、再次使用file.createNewFile() 创建文件 D:/a/b/c,无异常,但是不能创建文件c,因为存在了文件夹c
删除文件夹C
7、使用file.createNewFile() 创建文件c, 成功创建文件c
编辑文件c,输入内容为111,
8、再次使用使用file.createNewFile() 创建文件c, 成功创建文件c,无异常,且原文件c仍然存在,即不能创建同名文件,且不会修改同名原文件内容。
结论:
1)如果文件或文件夹在文件系统中不存在,使用file.exists(),file.isFile(),file.isDirectory() 均返回false,所以用是否存在、是否是目录,是否是文件来判断,返回false,然后再对应的创建文件夹和文件的思路是错误的;
1)java 不能使用file.createNewFile()跨文件夹创建文件;
2)java不能使用file.mkdir()跨文件夹创建文件夹,可以使用file.mkdirs() ,跨文件夹创建文件夹;
3)java 在同一个文件夹下不能创建同名文件夹、且不能创建同名文件,且不能创建同名的文件夹和文件;
4)存在相同文件或文件夹时,java 再次创建不报错,但是不会创建新文件或文件夹;