java中File类的getPath()、getAbsolutePath()以及getCanonicalPath()的用法和区别

getPath():

基本语法:public String getPath(),直接返回此抽象路径名的路径名字符串。

注意:返回的是定义时的路径,可能是相对路径,也可能是绝对路径,这个取决于定义时用的是相对路径还是绝对路径。如果定义时用的是绝对路径,那么使用getPath()返回的结果跟用getAbsolutePath()返回的结果一样

getAbsolutePath():

基本语法:public String getAbsolutePath(),返回此抽象路径名的绝对路径名字符串。

注意:①如果这个抽象路径名已经是绝对的,那么路径名字符串就像getPath()方法一样简单地返回。

          ②如果此抽象路径名为空抽象路径名,则返回由系统属性user.dir命名的当前用户目录的路径名字符串。

          ③否则,该路径名以系统相关的方式解决。

          ④返回的是定义时的路径对应的相对路径,但不会处理“.”和“..”的情况

getCanonicalPath():

基本语法:public String getCanonicalPath() throws IOException,返回此抽象路径名规范化后的路径名字符串。

注意:此方法首先将此路径名转换为绝对形式,就像调用getAbsolutePath()方法一样,然后以系统相关的方式将其映射到其唯一的形式。 这通常包括从路径名中删除冗余名称,例如"."和".." 

区别:

getPath()获取相对路径,输入的是什么路径就输出什么路径字符串;getAbsolutePath()获取的是绝对路径,根据填入的是空字符串还是相对路径还是绝对路径做不同的处理,如果是空则返回当前项目的路径字符串,如果是绝对路径则返回绝对路径名字符串,如果是相对路径则返回当前项目路径字符串+此相对路径字符串,以此方式得到绝对路径。getCanonicalPath()会对路径中的.和..采用省略等方式的规范化处理,而getAbsolutePath()不会对其进行处理。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值