先说总结
总结:
getPath:返回的是构造时的参数
getAbsolutePath:返回的是文件所在目录的路径+构造时的参数
getCanonicalPath:返回的就是这个文件存储的绝对路径
学到file类之后,发现竟然有这么多获取path的方法,但是这些方法又各自都返回什么呢,各种有什么区别呢?
返回的值有什么区别呢?
有疑问咱就动手敲代码实现来观察结果,看看区别。然后就尴尬了,结果是三个方法的返回值完全一模一样
之后我查阅资料,但是都找不到问题所在,这个问题好像关心的人很少,没有这类解答。于是我就去看汉化jdk发现根本读不懂,感觉就是给懂的人读的,然后我硬着头皮去看了看英文版的jdk,发现了其中的奥妙所在。
首先getPath和getAbsolutePath做比较,他们的不同体现在,file类构造时给的路径不同才会有所不同。
结果显示
file类构造时,参数为相对路径时
getPath会直接返回构造时的参数路径
getAbsolutePath会返回目录路径+构造时的参数路径
file类构造时,参数为绝对路径时
getPath会直接返回构造时的参数路径
getAbsolutePath会返回全路径
getPath和getAbsolutePath和getCanonicalPath做比较
总结由下图总结:
getPath:返回的是构造时的参数
getAbsolutePath:返回的是文件所在目录的路径+构造时的参数
getCanonicalPath:返回的就是这个文件存储的绝对路径