java file类的getPath和getAbsolutePath和getCanonicalPath 的疑问与解答

先说总结

  • 总结:
    • getPath:返回的是构造时的参数
    • getAbsolutePath:返回的是文件所在目录的路径+构造时的参数
    • getCanonicalPath:返回的就是这个文件存储的绝对路径

学到file类之后,发现竟然有这么多获取path的方法,但是这些方法又各自都返回什么呢,各种有什么区别呢?

  1. 返回的值有什么区别呢?

    • 有疑问咱就动手敲代码实现来观察结果,看看区别。然后就尴尬了,结果是三个方法的返回值完全一模一样
      • 在这里插入图片描述
    • 之后我查阅资料,但是都找不到问题所在,这个问题好像关心的人很少,没有这类解答。于是我就去看汉化jdk发现根本读不懂,感觉就是给懂的人读的,然后我硬着头皮去看了看英文版的jdk,发现了其中的奥妙所在。
      • 首先getPath和getAbsolutePath做比较,他们的不同体现在,file类构造时给的路径不同才会有所不同。

        • 在这里插入图片描述
        • 结果显示
          • file类构造时,参数为相对路径时
            • getPath会直接返回构造时的参数路径
            • getAbsolutePath会返回目录路径+构造时的参数路径
          • file类构造时,参数为绝对路径时
            • getPath会直接返回构造时的参数路径
            • getAbsolutePath会返回全路径
      • getPath和getAbsolutePath和getCanonicalPath做比较

        • 总结由下图总结:
          • getPath:返回的是构造时的参数
          • getAbsolutePath:返回的是文件所在目录的路径+构造时的参数
          • getCanonicalPath:返回的就是这个文件存储的绝对路径
        • 在这里插入图片描述
  2. 各种都在什么情况下使用呢?

持续更新

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值