本文是笔者在追查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.txtD:/workspace/test/./test1.txt-----默认绝对路径:取得路径相同------D:/workspace/test/test1.txtD:/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.txtD:/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同样的代码得到不同的结果。如有其它好的方法和见解请指导,我会认真学习的
新闻热点
疑难解答