java中File类的getPath(),getAbsolutePath(),getCanonicalPath()区别
File f = new File(".\\test.xml");
System.out.println(f.getAbsolutePath());
System.out.println(f.getPath());
System.out.println(f.getCanonicalPath());
输出:
C:\01_E\code\java\.\test.xml
.\test.xml
C:\01_E\code\java\test.xml
File f = new File(".\\test.xml");
System.out.println(f.getAbsolutePath());
System.out.println(f.getPath());
System.out.println(f.getCanonicalPath());
输出:
C:\01_E\code\java\..\test.xml
..\test.xml
C:\01_E\code\test.xml
“.”(一个点):表示在当前工程路径下;
“…”(两个点):表示当前工程路径的上一级路径。
getPath() 返回的是定义时的路径。
getAbsolutePath() 方法返回文件的绝对路径,如果构造的时候是全路径就直接返回全路径,如果构造时是相对路径,就返回当前目录的路径 + 构造 File 对象时的路径;
getCanonicalPath() 返回的是规范化的绝对路径,相当于将getAbsolutePath()中的".“和”…"解析成对应的正确的路径