getResourceAsStream的用法

来源:互联网 发布:大时代数据 编辑:程序博客网 时间:2024/06/05 10:46


getResourceAsStream(path):path 不以’/'开头时表示是从此类所在的包下取资源,以’/'开头则是从类根路径下获取。

现假设有一个类(Test.java)要读取配置文件。

何为类根路径:说白了就是‘src/’,像'src/Qq.txt',Qq.txt就处于类根路径下;像‘src/com/Tt.java’,Tt.java就不是在类根路径下。

1.路径:src/aa.xml

<span style="font-size:18px;">读取该路径下的aa.xml文件:InputStream is=Test.class.getResourceAsStream("/aa.xml");//表示从类根路径根下读取文件</span>

2..位于src下同一个包下:

src/com/zsj/Test.java,src/com/zsj/aa.xml

如果此时用上面的方法,则会报错,找不到文件,因为aa.xml和Test.java是位于同一个包下。位于同一个包下的资源可以采用下面的方式,若果不是同一个包下,请参照第3种方式。

<span style="font-size:18px;">(1)InputStream is=Test.class.getResourceAsStream("aa.xml");//表示从此类所在的包路径下读取文件 </span>

3.位于src下不同包:

src/com/one.java,src/cn/aa.xml

<span style="font-size:18px;">InputStream is=Test.class.getResourceAsStream("/cn/aa.xml");//读取与加载类位置不一致时的资源文件 </span>

4.Class.getClassLoader.getResourceAsStream(String path) :只能从类根路径下获取,path不能以’/'开头

0 0
原创粉丝点击