java中File类的getPath(),getAbsolutePath(),getCanonicalPath()区别

1. getPath()得到的文件构造时参数中给出的路径

File file = new File(".\\hello.txt");

System.out.println(file.getPath());

输出的路径为 .\hello.txt

File file = new File("E:\\workspace\\java\\hello.txt");

System.out.println(file.getPath());

输出的路径为 E:\\workspace\\java\\hello.txt

2. getAbsolutePath()返回的是文件的绝地路径。

File file = new File(".\\hello.txt");

System.out.println(file.getAbsolutePath());

输出的路径为 E:\workspace\java\\hello.txt

File file = new File("E:\\workspace\\java\\hello.txt");

System.out.println(file.getAbsolutePath());

输出的路径为 E:\workspace\java\hello.txt

3. getCanonicalPath()也是返回文件的绝对路径,但会去除[..]这样的符号,即返回的是标准的绝地路径。

File file = new File("..\\java\\hello.txt");

System.out.println(file.getAbsolutePath());

System.out.println(file.getCanonicalPath());

getAbsolutePath()输出的路径为 E:\workspace\..\java\hello.txt

getCanonicalPath()输出的路径为 E:\workspace\java\hello.txt

你可能感兴趣的:(Java)