这两个都是加载资源返回inputstream对象。
不同的是:
Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其实也是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。
Class.getClassLoader().getResourceAsStream(String path) :默认则是从ClassPath根下获取,path直接使用相对于classpath的绝对路径,并且不能已 / 开头,最终是由ClassLoader获取资源。
实例:
比如说在com.czl包下有Test.java和beans.xml文件,那下面三个都是一样的效果
com.czl.Test.class.getResourceAsStream(“beans.xml”)
= com.czl.Test.class.getResourceAsStream("/com/czl/beans.xml")
= com.czl.Test.class.getClassLoader().getResourceAsStream(“com/czl/beans.xml”)