getPath():
基本语法:public String getPath(),直接返回此抽象路径名的路径名字符串。
注意:返回的是定义时的路径,可能是相对路径,也可能是绝对路径,这个取决于定义时用的是相对路径还是绝对路径。如果定义时用的是绝对路径,那么使用getPath()返回的结果跟用getAbsolutePath()返回的结果一样
getAbsolutePath():
基本语法:public String getAbsolutePath(),返回此抽象路径名的绝对路径名字符串。
注意:①如果这个抽象路径名已经是绝对的,那么路径名字符串就像getPath()方法一样简单地返回。
②如果此抽象路径名为空抽象路径名,则返回由系统属性user.dir命名的当前用户目录的路径名字符串。
③否则,该路径名以系统相关的方式解决。
④返回的是定义时的路径对应的相对路径,但不会处理“.”和“..”的情况
getCanonicalPath():
基本语法:public String getCanonicalPath() throws IOException,返回此抽象路径名规范化后的路径名字符串。
注意:此方法首先将此路径名转换为绝对形式,就像调用getAbsolutePath()方法一样,然后以系统相关的方式将其映射到其唯一的形式。 这通常包括从路径名中删除冗余名称,例如"."和".."
区别:
getPath()获取相对路径,输入的是什么路径就输出什么路径字符串;getAbsolutePath()获取的是绝对路径,根据填入的是空字符串还是相对路径还是绝对路径做不同的处理,如果是空则返回当前项目的路径字符串,如果是绝对路径则返回绝对路径名字符串,如果是相对路径则返回当前项目路径字符串+此相对路径字符串,以此方式得到绝对路径。getCanonicalPath()会对路径中的.和..采用省略等方式的规范化处理,而getAbsolutePath()不会对其进行处理。