Board logo

标题: Java中getResourceAsStream的用法 [打印本页]

作者: qingqing3721    时间: 2011-5-19 07:38     标题: 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 香袭人祛痘精油好吗 整理,收集辛苦,希望能保留出处。




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0