Java 以下路径之间的差异?

Java 以下路径之间的差异?,java,spring,Java,Spring,我在属性文件中配置了以下路径 C:/folder/file.xml file:/folder/file.xml 我在spring应用程序上下文文件中引用的上述两个路径之一。我的问题是这两条路径之间的区别是什么 谢谢 在Windows上,两者都指向同一目录。基于*nix的系统第一个无法工作。因此,第二个更通用,应该使用第二个来代替第一个。文件前缀让spring知道它正在寻找一个文件,而不是类路径资源、http或ftp资源 UrlResource包装了一个java.net.URL,可用于访问任何

我在属性文件中配置了以下路径

C:/folder/file.xml
file:/folder/file.xml
我在spring应用程序上下文文件中引用的上述两个路径之一。我的问题是这两条路径之间的区别是什么


谢谢

在Windows上,两者都指向同一目录。基于*nix的系统第一个无法工作。因此,第二个更通用,应该使用第二个来代替第一个。

文件前缀让spring知道它正在寻找一个文件,而不是类路径资源、http或ftp资源

UrlResource包装了一个java.net.URL,可用于访问任何 通常可通过URL访问的对象,例如文件、HTTP 目标、FTP目标等。所有URL都有一个标准化字符串 表示,以便使用适当的标准化前缀 指示一种URL类型与另一种URL类型。这包括文件:for 访问文件系统路径http:用于通过http访问资源 协议,ftp:用于通过ftp等访问资源


使用相对路径总是更好的做法。无论您使用的是哪个平台或计算机,应用程序的相对文件夹结构都不会改变,这使得代码更可用。但它只在相对路径正确时才起作用,而绝对路径只要路径正确就起作用。

C:/folder/file.xml
是完全限定的文件名
file:/folder/file.xml
是一个URI,对于本地文件,它应该是
file://
,而不是在访问网络文件URI时使用
file://


URI不仅仅是Java的东西<代码>文件://表示资源是一个文件,而不是HTTP资源等。

“URI不仅仅是Java的东西”当然也不是“完全限定的文件名”,但我只是强调了URI。@Thihara,谢谢你的回复。我现在清楚了…如果file://folder/file.xml 指定,spring在哪里查找文件?我是说系统中的哪个文件夹?C:\folder。。请注意编辑。当访问本地计算机中的文件时,会使用三个斜杠。我之前错放了两个。两个斜杠用于网络URI。哦,你可以用浏览器做一个简单的实验。。。只需输入
文件://
URL,看看它会带你去哪里。