ClassLoader.getResourceAsStream() 与 Class.getResourceAsStream()的区别

时间:2023-03-09 08:22:24
ClassLoader.getResourceAsStream() 与 Class.getResourceAsStream()的区别
    Class.getResourceAsStream() 会指定要加载的资源路径与当前类所在包的路径一致。

例如你写了一个MyTest类在包com.test.mycode 下,那么MyTest.class.getResourceAsStream("name") 会在com.test.mycode包下查找相应的资源。

如果这个name是以 '/' 开头的,那么就会从classpath的根路径下开始查找。

    ClassLoader.getResourceAsStream()  无论要查找的资源前面是否带'/' 都会从classpath的根路径下查找。

所以: MyTest.getClassLoader().getResourceAsStream("/name") 和

            MyTest.getClassLoader().getResourceAsStream("name") 的效果是一样的。