java项目资源加载的几种方法

时间:2020-12-23 19:24:50

我所了解的加载资源的几种方式:
如图:
java项目资源加载的几种方法
要在ClassLoaderTest类的main方法里面加载资源有一下几种方法:

1:在没改变线程类加载器的情况下,使用线程类加载器加载资源

    Thread.currentThread().getContextClassLoader().getResourceAsStream("image/image.txt");
 由于我们使用的线程类加载器,所以资源是从classpath路径下加载的。
 这里的classpath路径在上图中就是我们所看到的src目录,所以image/image.txt是从classpath下寻找的。
 加载test.txt需要参数变为test/im/test.txt

2:使用加载此类的类加载器来加载

ClassLoaderTest t=new ClassLoaderTest();
t.getClass().getClassLoader().getResourceAsStream("image/image.txt");
在和1一样的目录下寻找

3.不需要getClassLoader()这一步

   t.getClass().getResourceAsStream("/image/image.txt");
注意:
   如果参数改为image/image.txt,默认是从此类所在目录即test目录下加载的这样就加载不到了
   反之,则加载目录还是classpath目录
同样的:加载test.txt时我们就方便多了
   加载test.txt如下
     t.getClass().getResourceAsStream("im/image.txt");
这样就可以了。
 因为没有在前面加/,所以是从此类所在包下加载资源的。