java中File类的getPath(),getAbsolutePath(),getCanonicalPath()区别

今天看一个例子,里面用到File类的getCanonicalPath()方法,忽然忘记这个方法返回的是什么样的路径了,跟getPath()和getAbsolutePath()有什么区别?带着这两个问题查了下文档,得到的结论如下:

getPath():

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

getAbsolutePath():

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

getCanonicalPath():

返回的是规范化的绝对路径,相当于将getAbsolutePath()中的“.”和“..”解析成对应的正确的路径

举例如下:

 
  1. File file = new File(".\\test.txt"); 
  2. System.out.println(file.getPath()); 
  3. System.out.println(file.getAbsolutePath()); 
  4. System.out.println(file.getCanonicalPath()); 

返回的结果为:

 
  1. .\test.txt 
  2. E:\workspace\Test\.\test.txt 
  3. E:\workspace\Test\test.txt 

“..”的情况类似

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值