获取类路径下的资源
获取类路径下的资源?
记住一句话所有src下的文件 都会出现在WebRoot / WEB-INF / classes/ 下。【.java变成Class 放到Classes下,其他文件直接复制过去】
类路径对一个JavaWeb项目而言,就是/WEB-INF/classes和/WEB-INF/lib/每个jar包!
1)ClassLoader【主要使用】
路径以.day09_4\WebRoot\WEB-INF\classes\...为准
ClassLoader是相对于./classes下的类
ClassLoader访问的路径为:day09_4\WebRoot\WEB-INF\classes\...
ClassLoader classloader = this.getClass().getClassLoader();
InputStream input = classloader .getResourceAsStream("cn/it/servlet/a.txt"); / / 相对于WEB-INF\classes/cn/it/servlet下:a.txt
InputStream input = classloader .getResourceAsStream("a.txt"); / / 相对于WEB-INF\classes下:a.txt
2)Class
Class是相对于./class下的类
路径以.day09_4\WebRoot\WEB-INF\classes\/cn/it/servlet/a.txt为准
Class c = this.getClass();
InputStream input = c.getResourceAsStream("a.txt"); / / 相对于当前类路径下:WEB-INF\classes/cn/it/servlet/a.txt
InputStream input = c.getResourceAsStream("/a.txt"); / / 相对于 /classes目录 :WEB-INF\classes下的a.txt
注:文件前加上/ 就相当于Class类变成了ClassLoader类,功能相似