有一次遇到了,查了查。原文地址

Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题。

Class.getResource(String path)

再来一个实例,假设有如下Project结构:

o_PackageStructure1

如果我们想在TestMain.java中分别取到1~3.properties文件,该怎么写路径呢?代码如下:

 

※Class.getResource和Class.getResourceAsStream在使用时,路径选择上是一样的。

 

 

Class.getClassLoader().getResource(String path)

如果有同样的Project结构

o_PackageStructure

使用Class.getClassLoader().getResource(String path)可以这么写:

public class TestMain { public static void main(String[] args) { TestMain t = new TestMain(); System.out.println(t.getClass().getClassLoader().getResource(""));

    System.out.println(t.getClass().getClassLoader().getResource("1.properties"));
    System.out.println(t.getClass().getClassLoader().getResource("testpackage/2.properties"));
    System.out.println(t.getClass().getClassLoader().getResource("testpackage/subpackage/3.properties"));
}

}

※Class.getClassLoader().getResource和Class.getClassLoader().getResourceAsStream在使用时,路径选择上也是一样的。