调用getResourceAsStream方法目前接触到的有两种:
1. Class.getClassLoader.getResourceAsStream(String path) :参数里的路径是不能以"/"开头。
2.Class.getResourceAsStream(String path) :参数里的路径如果以"/"开头表示读取根根目录下的文件,反之则是相对路径下的文件。
1.获取虚拟路径的真实路径来获取文件 FileSystem
ServletContext application = config.getServletContext();
String realPath = application.getRealPath("/WEB-INF/xxc.propertites");
InputStream is = new FileInputStream(realPath);
2.从WEB容器中读取
WebApp
ServletContext application = config.getServletContext();
InputStream is = application.getResourceAsStream("/WEB-INF/xxc.properties");
3.从classPath下读取文件
InputStream is = this.getClass().getResourceAsStream("/WEB-INF/xxc.properties");
从下图可知,知道了webApp的真实路径,对于再获取webApp中的各个servlet的真实路径并不是什么难事。