关于class.getClassLoader().getResourceAsStream()和class.getResourceAsStream()的用法

1.class.getResourceAsStream()

①.不加‘ / ’,直接在包的路径下开始寻找,相当于在已经写好的path前面加了一句 /包名/path
②加‘ / ’,就要从classpath的那一层开始找
比如,找到存放编译后的class存放的位置:

//文件目录
yx
 	jdbctest
 		com
 			A.class
 			B.class
 			1.properties```
2.properties

//调用1.properties 
InputStream inputStream=PropertiesTest.class.getResourceAsStream("1.properties");
InputStream inputStream=PropertiesTest.class.getResourceAsStream("/yx/jdbctest/com/1.properties");

//调用2.properties
InputStream inputStream=PropertiesTest.class.getResourceAsStream("/2.properties");
123456789101112131415

2.class.getClassLoader().getResourceAsStream()

getClassLoader是直接从classpath开始查找文件的,因此使用这个就需要定位在classpath这个位置,也就是下面目录中yx这一层。

//文件目录
yx
 	jdbctest
 		com
 			A.class
 			B.class
 			1.properties```
2.properties

//调用1.properties 
InputStream inputStream=PropertiesTest.class.getClassLoader().getResourceAsStream("yx/jdbctest/com/1.properties");
//调用2.properties
InputStream inputStream=PropertiesTest.class.getClassLoader().getResourceAsStream("2.properties");
12345678910111213

另外,如果你在整个工程目录下建立一个resource文件,编译之后,它会存到和yx同级的这个目录下,也就是classpath这里,如果建立的是一个test resource 那就会在这一层的上面一层中,这个等以后写了完整的程序出来,在做进一步的整理。

你可能感兴趣的:(java,python,前端,开发语言)