通过getResourceAsStream方法获取项目下的指定资源

时间:2020-05-08 23:04:38 类型:JAVA
字号:    

  首先,Java中的getResourceAsStream获取项目下的指定资源有以下几种:

  一:获取src下的指定资源

  1)、 Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下(即'/'代表src)获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。

  例:

  A)、在同级目录下:com.x.y 下有类me.class ,同时在同级目录下有资源文件myfile.xml,则应使用:me.class.getResourceAsStream("myfile.xml");

  B)、在子目录下:例如:com.x.y 下有类me.class ,同时在 com.x.y.file 目录下有资源文件myfile.xml,则应该使用me.class.getResourceAsStream("file/myfile.xml");

  2)、 Class.getClassLoader.getResourceAsStream(String path) :默认则是从ClassPath根下获取,path不能以’/'开头,最终是由ClassLoader获取资源。

  例:

  A)、 不在同级目录下,也不在子目录下:例如:com.x.y 下有类me.class ,同时在 com.x.file 目录下有资源文件myfile.xml,则应该使用:me.class.getClassLoader.getResourceAsStream("com/x/file/myfile.xml");

  二:获取web项目下的指定资源

  1)、 ServletContext. getResourceAsStream(String path):默认从WebAPP根目录(即:要发布在服务器下的项目的根目录(与src同级的web文件夹下))下取资源,path是否以’/'开头无所谓;

  例:

  A)、在web项目的根目录下有myfile.xml文件,则应该使用:

  getServleContext().getResourceAsStream("myfile.xml");

  2)、Jsp下的application内置对象就是上面的ServletContext的一种实现。

  作者:青春代言人

  链接:https://www.jianshu.com/p/be1de0bedddc

  


<