Java class.getResourceAsStream和ClassLoader.getResourceAsStream区别
它们都是去取classpath下的资源,但它们在路径上有一些区别:
1、Class.getResourceAsStream如果在没有"/"开头的情况下是去相对于此class文件开始进行查询的,如:如果有一个com.elliot.A.class的类文件,如果用A.class.getResourceAsStream("test.xml"),其是去A.class包下即com/elliot/下去查找test.xml文件的。但如果其以A.class.getResourceAsStream("/test.xml"),就是从classpath的绝对路径去查找test.xml文件的,也就是和包com同级下去查找文件。
2、ClassLoader.getResourceAsStream方式是从classpath的绝对路径开始去查询资源的,其开头不能加"/",其效果和Class.getResourceAsStream以"/"等同。