java中File类getPath()、getAbsolutePath()、getCanonicalPath()区别?

简单看一下描述,例子最重要。

1、getPath():

  返回定义时的路径,(就是你写什么路径,他就返回什么路径)

2、getAbsolutePath():

  返回绝对路径,但不会处理“.”和“..”的情况

3、getCanonicalPath():

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

第一个例子:(使用:“.\\src\\test.txt”一个点路径)

  File file = new File(".\\src\\test.txt");

    System.out.println(file.getPath());
    System.out.println(file.getAbsolutePath());
    System.out.println( file.getCanonicalPath());    

结果:
.\src\test.txt
D:\workspace\java_io\.\src\test.txt
D:\workspace\java_io\src\test.txt

第二个例子:(使用:“..\\src\\test.txt”两个点路径)

	File file = new File("..\\src\\test.txt");

		System.out.println(file.getPath());
		System.out.println(file.getAbsolutePath());
		System.out.println( file.getCanonicalPath());

结果:
..\src\test.txt
D:\workspace\java_io\..\src\test.txt
D:\workspace\src\test.txt  注意这个结果的路径,与一个点时不一样;因为他解析了“.”和“..”的情况。

 第三个例子:(使用:“D:\\test\\absoluteTest.txt”绝对路径)

File file = new File("D:\\test\\absoluteTest.txt");

		System.out.println(file.getPath());
		System.out.println(file.getAbsolutePath());
		System.out.println(file.getCanonicalPath());

结果:
D:\test\absoluteTest.txt
D:\test\absoluteTest.txt
D:\test\absoluteTest.txt

 结论:

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

2、当输入为相对路径时:

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

  2.2、getAbsolutePath()返回的其实是user.dir+getPath()的内容,从上面看:D:\workspace\java_io\.\src\test.txt,D:\workspace\java_io\..\src\test.txt,可以得出。

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

时间: 2024-08-02 02:46:29

java中File类getPath()、getAbsolutePath()、getCanonicalPath()区别?的相关文章

Java中File类的基本用法

File类的基本用法 java.io.File类:代表文件和目录.在开发中,读取文件.生成文件.删除文件.修改文件的属性时经常会用到此类. File类的常用构造方法:public File(String pathname) 以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储. 文件的创建 import java.io.File; import java.io.IOException; public class Test {

file.getPath() getAbsolutePath() getCanonicalPath()区别

package file; import java.io.File; import java.io.IOException; public class getFilePath { public static void main(String[] args) throws IOException { System.out.println("------默认相对路径,取得路径不同-----"); File f = new File("..\\src\\file"); S

黑马程序员------Java中File类学习总结

Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! File类 1.用来将文件或者文件夹封装成对象,以方便对文件和文件夹进行操作. 2.File对象可以作为参数传递给流的构造函数. File对象功能: 创建和删除: 1.boolean createNewFile(): 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件. 2.boolean mkdir():创建此抽象路径名指定的目录. 3.boolean mkdirs():创建此抽象路径

java中File类的使用

public class FileLei { public static void main(String[] args) throws IOException {        //..表示上一级目录     .表示当前所在目录        File file = new File("C:\\Users\\cdlx2016\\Desktop\\file类");        System.out.println("是否存在该文件:"+file.exists())

java中File类

转自http://shameant.iteye.com/blog/163007 Java文件操作我个人认为重要的问题有: a:如何跨平台问题   b:文件编码问题,尤其是多语言平台情况下如何正常工作.   c:文件读写效率.操作效率   d:文件加密和文件安全   e:文件快速检索,强烈建议使用lence进行文件检索及文件管理. 以下是本人做的一些整理: 一:建立文件 File file1 = new File ("C:\\temp\\myNote.txt"); // in Windo

java中File类详解

构造函数 代码如下: public class FileDemo {     public static void main(String[] args){         //构造函数File(String pathname)         File f1 =new File("c:\\abc\\1.txt");         //File(String parent,String child)         File f2 =new File("c:\\abc&qu

Java中File类重修

IO流 概述 io流:输入输出流(input/output).流是一组有顺序的,有起点和终点的字节集合,是对各种数据传输的总称或抽象.即数据在两设备之间的传输称为流.流的本质是数据传输. InputStream:所有输入流的超类 OutputSream:所有输出流的超类 1.在指定的目录中查找文件后缀为.txt的文件 import java.io.File; //在指定的目录中查找文件 public class FindFile { public static void main(String[

Java中File类如何扫描磁盘所有文件包括子目录及子目录文件

详细情况看代码吧,我这个代码有个BUG,扫描U盘的时候可能会报空指针异常,希望大虾指点下 import java.io.File; import java.util.ArrayDeque; public class FileListDemo { public static void main(String[] args) { File f1 = new File("E:\\"); //深度搜索 getPathDFS(f1); System.out.println("=====

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

File file = new File(".\\test.txt"); System.out.println(file.getPath()); System.out.println(file.getAbsolutePath()); System.out.println(file.getCanonicalPath()); 输出实例: .\test.txt E:\workspace\Test\.\test.txt E:\workspace\Test\test.txt getPath():