抽象路径在java.io中意味着什么?

在java doc中

File#getPath() 

写道:

  Converts this abstract pathname into a pathname string. 

我试着写1

 File file3 = new File("D:\\work"); System.out.println(file3.getPath()); 

在cmd中我看到D:\\work

我试着写2:

 File file4= new File("file4"); System.out.println(file4.getPath()); 

在cmd我看到:

 file4 

因此我有一个问题:

有什么区别

抽象路径名

路径名字符串

抽象路径名java.io.File对象, 路径名字符串java.lang.String对象。 两者都引用磁盘上的相同文件。

我怎么知道?

java.io.File的Javadoc的第一句话解释了:

文件和目录路径名的抽象表示。

它继续解释原因:

用户界面和操作系统使用依赖于系统的路径名字符串来命名文件和目录。 此类提供了一个抽象的,与系统无关的分层路径名视图。

抽象路径名只是File对象中保存的文件/位置的字符串forms。

如果检查File#toString()的javadoc:

返回此抽象路径名的路径名字符串。 这只是getPath()方法返回的字符串。

请参阅javadoc:abstract pathname = File

  1. 可选的系统相关前缀字符串,例如磁盘驱动器说明符,UNIX根目录的“/”或Microsoft Windows UNC路径名的“\\”,以及
  2. 一个零个或多个字符串名称的序列。 [参考目录和文件

这些与操作系统的符号特性无关。

字符串forms为您提供了在当前操作系统上编写以引用该文件所需的内容。