Java中getResourceAsStream的用法
首先, Java中的getResourceAsStream有以下几种:
1. Class. getResourceAsStream(String path) : path 不以’/'扫尾时默许是从此类所在的包下取资源, 以’/'扫尾则是从
ClassPath根下获取。 其只是通过path构造一个相对途径, 最终还是由ClassLoader获取资源。
2. Class. getClassLoader. getResourceAsStream(String path) :默许则是从ClassPath根下获取?琾ath不能以’/'扫尾, 最终是由
ClassLoader获取资源。
3. ServletContext. getResourceAsStream(String path):默许从WebAPP根目录下取资源, Tomcat下path能否以’/'扫尾无所谓,
当然这和具体的容器实现有关。
4. Jsp下的application内置对象就是下面的ServletContext的一种实现。
其次, getResourceAsStream 用法大致有以下几种:
第一: 要加载的文件和. class文件在同一目录下, 例如:com. x. y 下有类me. class , 同时有资源文件myfile. xml
那么, 应该有如下代码:
me. class. getResourceAsStream("myfile. xml");
第二:在me. class目录的子目录下, 例如:com. x. y 下有类me. class , 同时在 com. x. y. file 目录下有资源文件myfile. xml
那么, 应该有如下代码:
me. class. getResourceAsStream("file/myfile. xml");
第三:不在me. class目录下, 也不在子目录下, 例如:com. x. y 下有类me. class , 同时在 com. x. file 目录下有资源文件myfile. xml
那么, 应该有如下代码:
me. class. getResourceAsStream("/com/x/file/myfile. xml");
总结一下, 可能只是两种写法
第一:前面有 “ / ”
“ / ”代表了工程的根目录, 例如工程名叫做myproject, “ / ”代表了myproject
me. class. getResourceAsStream("/com/x/file/myfile. xml");
第二:前面没有 “ / ”
代表当前类的目录
me. class. getResourceAsStream("myfile. xml");
me. class. getResourceAsStream("file/myfile. xml");文章由 sungxi.tk 香袭人祛痘精油好吗 整理,收集辛苦,希望能保留出处。