Java Class类加载资源的一般方法

从 classpath 里面进行资源读取、加载,一般采用Class.getResourceAsStream和ClassLoader.getResourceAsStream方法。

Class.getResourceAsStream主要用于读取相对于当前Class的资源;
ClassLoader.getResourceAsStream用于读取相对于classpath的资源。

在使用Class.getResourceAsStream 时, 资源路径访问有两种方式, 一种以 / 开头,则这样的路径是指定绝对路径; 如果不以 / 开头, 则路径是相对于这个class所在的包目录的。

在使用ClassLoader.getResourceAsStream时, 路径直接使用相对于classpath的绝对路径。

举例,假设classpath下有如下目录和文件:

classpath:/com/example/Test.class
classpath:/com/example/abc.txt

则下面的三个语句,实际结果是一样的:

com.example.Test.class.getResourceAsStream("abc.txt");
com.example.Test.class.getResourceAsStream("/com/example/abc.txt");
ClassLoader.getResourceAsStream("com/example/abc.txt");

猜你喜欢

转载自blog.csdn.net/pierre_/article/details/78134541