当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java getPath()和getCononicalPath()的区别用法及代码示例


在讨论差异之前,让我们快速回顾一下这三种方法

  1. Java - File getPath()用法及代码示例 方法
  2. Java - File getAbsolutePath()用法及代码示例 方法
  3. Java - File getCanonicalPath()用法及代码示例方法

1. Java - File getPath()用法及代码示例 方法

getPath()是URL类的一种方法,它将给定的抽象路径名转换为路径名字符串。结果字符串使用默认的name-separator字符分隔名称序列中的名称。

返回值:抽象路径名的字符串形式



Java

// Java Program illustrating the getPath() method 
  
// Importing input output classes 
import java.io.*; 
  
// Class for getPath method() 
public class GFG { 
  
    // Main driver method 
    public static void main(String[] args) 
    { 
        // Creating a new file onject in which input is 
        // absoute path as in argument from the user 
        File path1 = new File( 
            "C:/Users/ASPIRE/Desktop/Java/Notes/Chapter one/demo.txt"); 
  
        // Print the display the path string for 
        // absolute path using getPath() method 
        System.out.println( 
            "Output for given absolute path:"
            + path1.getPath()); 
  
        // Creating another object of File and this time 
        // relative path is provided as an input 
        File path2 = new File("Notes/../demo.txt"); 
  
        // Print the display the path string for 
        // relative path using getPath() method 
        System.out.println( 
            "Output for given relative path:"
            + path2.getPath()); 
    } 
}

输出:

2. Java - File getAbsolutePath()用法及代码示例 方法

getAbsolutePath()返回表示给定路径的绝对路径的路径对象。如果给定的路径名​​已经是绝对的,则仅通过getPath()方法返回路径名字符串。如果此抽象路径名是空的抽象路径名,则返回由系统属性用户“ .dir”()命名的当前用户目录的路径名字符串。否则,将以system-dependent的方式解析此路径名。

返回值:绝对路径名字符串,表示与此抽象路径名相同的文件或目录

  • On Unix’s System:通过针对当前用户目录解析相对路径名,可以使该路径为绝对路径。
  • On Microsoft System:通过将相对路径名与由路径名命名的驱动器的当前目录(如果有)解析,可以使它成为绝对路径。如果不是,则针对当前用户目录进行解析。

例:

Java



// Java Program illustrating the getAbsolutePath() Method 
  
// Importing all input output classes 
import java.io.*; 
  
// Class to get getAbsolutePath 
public class GFG { 
  
    // Main driver method 
    public static void main(String[] args) 
    { 
  
        // Creating a file object where 
        // relatie path is provided as in paarameter 
        File path = new File("Notes/../demo.txt"); 
  
        // Print and display the string representing 
        // absolute path of the file 
        System.out.println("Output:"
                           + path.getAbsolutePath()); 
    } 
}

输出:

3Java - File getCanonicalPath()用法及代码示例方法

此方法返回给定抽象路径名的规范路径名字符串。规范路径名是绝对的,也是唯一的。如有必要,此方法首先将路径名转换为绝对格式,就像调用getAbsolutePath()方法一样,然后以system-dependent方式将其映射为唯一格式。

返回值:规范路径名字符串,表示与抽象路径名相同的文件或目录。

Java

// Java Program illustrating the getCanonicalPath() method 
  
// Importing all input output classes 
import java.io.*; 
  
// Class for showcasing getCanonicalPath method 
public class GFG { 
  
    // Main driver method 
    public static void main(String[] args) 
        throws IOException 
    { 
        // Creating a new File object and 
        // providing it relative path as in argumennts 
        File path = new File("Notes/../demo.txt"); 
  
        // Print an display the the canonical path 
        // name string 
        System.out.println("Output:"
                           + path.getCanonicalPath()); 
    } 
}

输出:

输出说明:为了更好地解释这些CMD输出或硬编码输出,使用的java文件的指定位置如下

:C:\Users\ASPIRE\Desktop\Java\getPathExample or getAbsoltePathExample or getCanonicalPathExample

demo.txt文件的位置

:C:\Users\ASPIRE\Desktop\Java\Notes\Chapter one\demo.txt

现在,在讨论了它们各自之后,让我们深入研究getPath(),getAbsolutePath()和getCanonicalPath()之间的差异,如下所示:

getPath() getAbsolutePath() getCononicalPath()
此方法返回一个字符串,该字符串表示文件对象表示的文件的(绝对或相对)路径名。 此方法返回抽象文件路径名的绝对路径名字符串。 此方法返回给定抽象路径名的规范路径名字符串。
如果使用相对路径创建文件对象,则返回的路径是相对路径。 如果抽象路径名是相对的,则以system-dependent的方式解析。 如果文件对象是使用相对路径创建的,则此方法首先将路径名转换为绝对路径并将其映射为唯一形式。
如果使用绝对路径创建文件对象,则返回的路径为绝对路径。 如果抽象路径名已经是绝对路径,则返回相同的路径名字符串。 如果使用相对路径创建文件对象,则返回的路径将采用唯一形式。
此方法不解析路径名。 此方法仅解析当前目录的相对路径。速记表示形式(例如“.”和“..”)不再得到解决。 此方法涉及从路径名中删除冗余名称(例如“.”和“..”),解析符号链接(在Unix平台上)以及将驱动器号转换为标准大小写(在Microsoft window平台上)。

在视窗系统上

文件路径=新文件(“Notes/../demo.txt”);

输出:

Notes \ .. \ demo.txt

在Unix系统上

文件路径=新文件(“ Notes /../demo.txt”)

输出:

注释/../demo.txt

视窗系统

文件路径=新文件(“Notes/../demo.txt”);

输出:

C:\ Users \ ASPIRE \ Desktop \ Java \ Notes \ .. \ demo.txt

在Unix系统上

文件路径=新文件(“ Notes /../demo.txt”)

输出:

主页/pooja /桌面/便笺/../demo.txt

在Window系统上

文件路径=新文件(“Notes/../demo.txt”);

输出:

C:\ Users \ ASPIRE \ Desktop \ Java \ demo.txt

在Unix系统上

文件路径=新文件(“ Notes /../demo.txt”)

输出:

/home/pooja/Desktop/Java/demo.txt

相关用法


注:本文由纯净天空筛选整理自poojavichare1810大神的英文原创作品 Difference between getPath() and getCononicalPath() in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。