String name = “AAAA.txt”;
String lujing = “ab”+”/”+”abc”;//定义路径
File a = new File(lujing,name);
那么,a的意义就是“ab/abc/AAAA.txt”。
为什么要有getParent方法的存在?
首先,在Java当中,File 既可以表示成 文件(AAAA.txt文件)也可以表示为 文件夹(以AAAA.txt为名的文件夹),
所以在“ab/abc/AAAA.txt”真正出现在磁盘结构里之前,它既可以表示这个文件,也可以表示这个路径的文件夹。-----那么,如果没有getParentFile(),直接执行a.mkdirs(),就是说,创建“ab/abc/AAAA.txt”代表的文件夹,也就是“ab/abc/AAAA.txt/”,在此之后,执行a.createNewFile(),试图创建a文件,然而以a为名的文件夹已经存在了,所以createNewFile()实际是执行失败的。(你可以用System.out.println(a.createNewFile())这样来检查是不是真正创建文件成功。)
那么需要怎么创建文件呢?
所以,这里,你想要创建的是“ab/abc/AAAA.txt”这个文件。在创建AAAA.txt之前,必须要ab/abc这个目录存在。所以,要得到ab/abc,就要用a.getParentFile(),然后要创建它,也就是a.getParentFile().mkdirs()。(用来创建目录 来放置AAAA.txt文件)在这之后,a作为文件所需要的文件夹大概会存在了(有特殊情况会无法创建的,这里不考虑),就执行a.createNewFile()创建a文件。