java里getPath、 getAbsolutePath、getCanonicalPath的区别
2016-02-19 09:20
531 查看
File的这三个方法在api中都有说明,仅以程序为例说明。
程序执行结果如下:
结论:
当输入为绝对路径时,返回的都是绝对路径。
当输入为相对路径时:
getPath()返回的是File构造方法里的路径,是什么就是什么,不增不减
getAbsolutePath()返回的其实是user.dir+getPath()的内容,从上面F:\eclipseworkspace\testejb、F:\eclipseworkspace\testejb..\src\test1.txt、F:\eclipseworkspace\testejb.\test1.txt可以得出。
getCanonicalPath()返回的就是标准的将符号完全解析的路径
package test; import java.io.File; import java.io.IOException; public class TestFilePath { public static void main(String[] args) { // TODO Auto-generated methodstub 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) { // TODOAuto-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()返回的就是标准的将符号完全解析的路径
相关文章推荐
- Java经典23种设计模式之结构型模式(一)
- 使用eclipse facete将Java Project转换成Dynamic Web Project
- java(15)--Servlet生成随机验证图片
- eclipse 添加v7包
- Eclipse svn 忽略文件夹/ svn 设置不同步
- Eclipse中SVN更改连接用户
- SpringMvc静态资源加载出错
- JavaSE-多线程
- java的开始
- JavaSE-与时间相关的类
- java基础总结-- 关键字含义
- GeoHadoop 之 Hilbert 空间填充曲线 Java 实现(二)
- GeoHadoop 之 Hilbert 空间填充曲线 Java 实现(一)
- Java并发编程:深入剖析ThreadLocal
- java嵌套类和内部类详解
- 几种任务调度的 Java 实现方法与比较
- Java generics
- Java并发编程:并发容器之ConcurrentHashMap
- struts2的Action名字的大小写问题
- 循序渐进学java基础笔记(4) —— 编译和java程序的运行关系