本文是笔者在追查zip包压缩和解压时,所遇到的方法,特此在网上查阅了其他作者的解释自己做个存留 getParentFile()的作用是获得父目录 问题就是.mkdirs(); 这个方法只能生成一层一层的文件夹,不能生成文件,而你的file对象路径是直接到文件那一层的, 不用getParentFile()获得父目录的话,就会想你说的那样生成两个文件夹而不是你想要的文件,所以要先调用getParentFile()获得父目录, 用.mkdirs()生成父目录文件夹,最后把你想要的文件生成到这个文件夹下面,就是想要的结果
getAbsolutePath():返回抽象路径名的绝对路径名字符串。 public static void test1(){ File file1 = new File(".\\test1.txt"); File file2 = new File("D:\\workspace\\test\\test1.txt"); System.out.println("-----默认相对路径:取得路径不同------"); System.out.println(file1.getPath()); System.out.println(file1.getAbsolutePath()); System.out.println("-----默认绝对路径:取得路径相同------"); System.out.println(file2.getPath()); System.out.println(file2.getAbsolutePath()); } -----默认相对路径:取得路径不同------ .\test1.txt D:\workspace\test\.\test1.txt -----默认绝对路径:取得路径相同------ D:\workspace\test\test1.txt D:\workspace\test\test1.txt ---------------------------------------------------- public static void test2() throws Exception{ File file = new File("..\\src\\test1.txt"); System.out.println(file.getAbsolutePath()); System.out.println(file.getCanonicalPath()); } D:\workspace\test\..\src\test1.txt D:\workspace\src\test1.txt -------------------------------------------- public static void test3() throws Exception{ File file = new File("D:\\Text.txt"); System.out.println(file.getCanonicalPath()); } (1),确定D盘下没有Text.txt这个文件,直接执行这段代码,得到的结果是: D:\Text.txt注意这里试大写的Text.txt (2)在D盘下建立一个文件,名叫text.txt,再次执行代码,得到结果 D:\text.txt同样的代码得到不同的结果。
如有其它好的方法和见解请指导,我会认真学习的