getPath得到的是构造参数的路径。
getAbsolutePath得到的是全路径。如果构造参数是相对路径,则返回当前目录的绝对路径+构造参数路径;如果是绝对路径则直接返回。
例子:
public void diff_pathAndAbsolutePath(){
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
getabsolutePath和getCononicalPath的区别
getCanonicalPath得到的不仅是全路径,而且会解析并剔除[..]这样的符号,即给出一个标准的绝对路径。
例子:
public void diff_AbsolutePathAndCanonicalPath() throws IOException{
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
D:\workspace\test\..\src\test1.txt
D:\workspace\src\test1.txt