在讨论区别之前,我们快速回顾一下这三种方法:
- getPath() 方法
- getAbsolutePath() 方法
- getCanonicalPath() 方法
1. getPath() 方法
getPath()
是 URL 类的一种方法。它将给定的抽象路径名转换为路径名字符串。生成的字符串使用默认的名称分隔符来分隔名称序列中的名称。
返回:抽象路径名的字符串形式
示例:
// Java Program illustrating the getPath() method
// Importing input output classes
import java.io.*;
// Class for getPath method()
public class YiibaiDemo {
// Main driver method
public static void main(String[] args)
{
// Creating a new file object in which input is
// absolute path as in argument from the user
File path1 = new File("C:/Users/Yiibai/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. getAbsolutePath() 方法
getAbsolutePath()
返回一个表示给定路径的绝对路径的路径对象。如果给定的路径名已经是绝对的,那么路径名字符串就像由 getPath() 方法返回一样。如果此抽象路径名是空的抽象路径名,则返回当前用户目录的路径名字符串,该字符串由系统属性用户 .dir'()
命名。否则,将以与系统相关的方式解析此路径名。
返回:绝对路径名字符串,表示与此抽象路径名相同的文件或目录
在Unix的系统上:通过针对当前用户目录解析相对路径名来使其成为绝对路径名。
在 Microsoft 系统上:通过针对由路径名命名的驱动器的当前目录(如果有)解析相对路径名,使相对路径名成为绝对路径名。如果不是,则针对当前用户目录解析。
// Java Program illustrating the getAbsolutePath() Method
// Importing all input output classes
import java.io.*;
// Class to get getAbsolutePath
public class YiibaiDemo {
// Main driver method
public static void main(String[] args)
{
// Creating a file object where
// relative path is provided as in parameter
File path = new File("Notes/../demo.txt");
// Print and display the string representing
// absolute path of the file
System.out.println("Output : "+ path.getAbsolutePath());
}
}
- getCanonicalPath() 方法
此方法返回给定抽象路径名的规范路径名字符串。规范路径名既是绝对的,也是唯一的。如有必要,此方法首先将路径名转换为绝对形式,就像通过调用 getAbsolutePath() 方法一样,然后以依赖于系统的方式将其映射到其唯一形式。
返回:表示与抽象路径名相同的文件或目录的规范路径名字符串。
示例:
// Java Program illustrating the getCanonicalPath() method
// Importing all input output classes
import java.io.*;
// Class for showcasing getCanonicalPath method
public class YiibaiDemo {
// Main driver method
public static void main(String[] args)
throws IOException
{
// Creating a new File object and
// providing it relative path as in arguments
File path = new File("Notes/../demo.txt");
// Print an display the canonical path
// name string
System.out.println("Output: "+ path.getCanonicalPath());
}
}
输出说明:为了更好地解释这些CMD输出或硬编码输出,使用的java文件的指定位置如下 -
C:/Users/ASPIRE/Desktop/JavagetPathExample or getAbsoltePathExample or getCanonicalPathExample
demo.txt文件的位置
C:/Users/ASPIRE/Desktop/JavaNotesChapter one/demo.txt
现在,在讨论了它们中的每一个之后,让我们深入了解getPath(),getAbsolutePath(),getCanonicalPath()之间的差异,如下所示:
getPath() | getAbsolutePath() | getCononicalPath() |
---|---|---|
此方法返回一个字符串,该字符串表示由文件对象表示的文件的(绝对或相对)路径名。 | 此方法返回抽象文件路径名的绝对路径名字符串。 | 此方法返回给定抽象路径名的规范路径名字符串。 |
如果文件对象是使用相对路径创建的,则返回的路径是相对路径。 | 如果抽象路径名是相对的,则以依赖于系统的方式解析它。 | 如果文件对象是使用相对路径创建的,则此方法首先将路径名转换为绝对路径名,并将其映射到唯一形式。 |
如果使用绝对路径创建文件对象,则返回的路径是绝对路径。 | 如果抽象路径名已经是绝对的,则返回相同的路径名字符串。 | 如果使用相对路径创建文件对象,则返回的路径将采用唯一形式。 |
此方法不解析路径名。 | 此方法仅解析相对路径的当前目录。速记表示形式(如“.”和“..”)不会进一步解析。 | 此方法涉及从路径名中删除多余的名称,如“.”和“..”,解析符号链接(在Unix平台上),以及将驱动器号转换为标准大小写(在Microsoft Windows平台上)。 |
Java中getPath()和getCononicalPath()之间的区别
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Java中getPath()和getCononicalPath()之间的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-getpath-and-getcononicalpath-in-java.html
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。