getPath getAbsolutePath和getCanonicalPath的区别

简介:

File的这三个方法在api中都有说明,仅以程序为例说明。

package test;

import java.io.File;
import java.io.IOException;

public class TestFilePath {

 
 public static void main(String[] args) {
  // TODO Auto-generated method stub

  System.out.println(System.getProperty("user.dir"));
  
  try {
   System.out.println("-----默认相对路径:取得路径不同------");
   File file1 = new File("..//src//test1.txt");
   System.out.println(file1.getPath());
   System.out.println(file1.getAbsolutePath());
   System.out.println(file1.getCanonicalPath());
   System.out.println("-----默认相对路径:取得路径不同------");
   File file = new File(".//test1.txt");
   System.out.println(file.getPath());
   System.out.println(file.getAbsolutePath());
   System.out.println(file.getCanonicalPath());
   
   System.out.println("-----默认绝对路径:取得路径相同------");
   File file2 = new File("D://workspace//test//test1.txt");
   System.out.println(file2.getPath());
   System.out.println(file2.getAbsolutePath());
   System.out.println(file2.getCanonicalPath());
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

}

程序执行结果如下:

F:/eclipseworkspace/testejb
-----默认相对路径:取得路径不同------
../src/test1.txt
F:/eclipseworkspace/testejb/../src/test1.txt
F:/eclipseworkspace/src/test1.txt
-----默认相对路径:取得路径不同------
./test1.txt
F:/eclipseworkspace/testejb/./test1.txt
F:/eclipseworkspace/testejb/test1.txt
-----默认绝对路径:取得路径相同------
D:/workspace/test/test1.txt
D:/workspace/test/test1.txt
D:/workspace/test/test1.txt
结论:

当输入为绝对路径时,返回的都是绝对路径。

当输入为相对路径时:

getPath()返回的是File构造方法里的路径,是什么就是什么,不增不减

getAbsolutePath()返回的其实是user.dir+getPath()的内容,从上面F:/eclipseworkspace/testejb、F:/eclipseworkspace/testejb/../src/test1.txt、F:/eclipseworkspace/testejb/./test1.txt可以得出。

getCanonicalPath()返回的就是标准的将符号完全解析的路径

相关文章
|
3月前
|
前端开发 JavaScript 搜索推荐
解密: SPA 与 MPA
单页面应用(SPA)是一种Web应用架构,其中所有的内容和功能都包含在单一的HTML页面中。这种应用在用户与界面交互时不会进行全页刷新,而是通过动态更新页面上的局部内容来提供流畅的用户体验。多页面应用(MPA)是一种传统的Web应用程序架构,它由多个页面组成,每个页面都是一个独立的文档,通常包含自己的一套JavaScript、CSS等资源。当用户在应用中导航时,浏览器会重新加载整个页面和相关的资源。
|
云计算 运维 存储
aPaaS平台是什么?aPaaS与PaaS有什么区别?
aPaaS和PaaS都可以完成软件的开发和部署,都支持云端访问,而两者的差异主要体现在用户人群和使用环境不一样。
aPaaS平台是什么?aPaaS与PaaS有什么区别?
|
3月前
|
Python
path()和re_path()函数
path()和re_path()函数。
45 1
|
2月前
PAT 1001 和 1002 A+B问题
PAT 1001 和 1002 A+B问题
|
3月前
|
Dragonfly 安全 数据安全/隐私保护
什么是WPA3?与WPA2有啥区别?
【4月更文挑战第14天】
2285 2
什么是WPA3?与WPA2有啥区别?
|
敏捷开发 存储 数据可视化
aPaaS是什么(aPaaS与iPaaS的区别)
依题:aPaaS是什么?aPaaS与iPaaS二者之间的区别在哪?要想了解区别,首先得搞清概念,不然就是在耍流氓!下面本人就从概念到区别用大白话给你一次性讲清楚。
aPaaS是什么(aPaaS与iPaaS的区别)
|
云栖大会
aPaaS和iPaaS的区别
aPaaS和iPaaS的区别自制脑图
208 0
aPaaS和iPaaS的区别
|
云栖大会
apaas 、ipaas
apaas 、ipaas自制脑图
169 0
apaas 、ipaas
|
JSON 数据格式
parse 和parseObject 有什么区别
JSON.parse()返回的结果是Object对象
312 0
PAT有几个pat
字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位§,第4位(A),第6位(T);第二个PAT是第3位§,第4位(A),第6位(T)。 现给定字符串,问一共可以形成多少个PAT?
101 0