关于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 那就会在这一层的上面一层中,这个等以后写了完整的程序出来,在做进一步的整理。