Java getResource和getResourceAsStream之间的资源名称不同

Java getResource和getResourceAsStream之间的资源名称不同,java,classloader,Java,Classloader,谁能解释一下: classLoader.getResource("folder/file.txt") // works classLoader.getResource("/folder/file.txt") // returns null classLoader.getResourceAsStream("folder/file.txt") // returns null classLoader.getResourceAsStream("/folde

谁能解释一下:

classLoader.getResource("folder/file.txt")            // works
classLoader.getResource("/folder/file.txt")           // returns null
classLoader.getResourceAsStream("folder/file.txt")    // returns null
classLoader.getResourceAsStream("/folder/file.txt")   // works

我从刚读过的任何文档中都看不懂它。

究竟是“文件夹”吗?当我在src/main/resources中抛出folder/file.txt时,它会为两个调用找到一个不带前导斜杠的文件,并为这两个调用返回null。假设
classLoader
java.lang.classLoader
的一个实例,应该没有区别,它们都可以工作或不工作。如果对象是
java.lang.Class
的实例,则前导的
/
使该名称成为绝对名称,而没有前导的
/
表示该名称与类“package.ClassLoader is simply SomeClass.Class.getClassLoader()有关。该资源位于/src/main/resources/folder/file.txtare下的maven项目中“文件夹”“是吗?当我在src/main/resources中抛出folder/file.txt时,它会为两个调用找到一个不带前导斜杠的文件,并为这两个调用返回null。假设
classLoader
java.lang.classLoader
的一个实例,应该没有区别,它们都可以工作或不工作。如果对象是
java.lang.Class
的实例,则前导的
/
使该名称成为绝对名称,而没有前导的
/
表示该名称是相对于类“package.ClassLoader is simply SomeClass.Class.getClassLoader()”的,该资源位于/src/main/resources/folder/file.txt下的maven项目中