Java class.getClassLoader().getResource("") 获取资源路径


在开发中经常需要获取资源文件路径,例如读写配置文件等。Java也提供很多方法来获取这些路径,下面就几种常用到的作一下讨论区分: 


1、xxx.class.getClassLoader().getResource(“”).getPath(); 
获取src资源文件编译后的路径(即classes路径) 


2、xxx.class.getClassLoader().getResource(“文件”).getPath(); 
获取classes路径下“文件”的路径 


3、xxx.class.getResource(“”).getPath(); 
缺少类加载器,获取xxx类经编译后的xxx.class路径 


4、this.getClass().getClassLoader().getResource(“”).getPath(); 
以上三种方法的另外一种写法 


5、request().getSession().getServletContext().getRealPath(“”); 
获取web项目的路径 


例如:

System.out.println(FileUpLoadAction.class.getClassLoader().getResource("conf.properties").getPath());
System.out.println(FileUpLoadAction.class.getClassLoader().getResource("").getPath());
System.out.println(FileUpLoadAction.class.getResource("").getPath());
System.out.println(this.getClass().getClassLoader().getResource("").getPath());
System.out.println(ServletActionContext.getRequest().getSession().getServletContext().getRealPath("login.jsp"));

 

输出依次为:

/D:/codes/trunk/client/web/IBMS/myworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/webclient/WEB-INF/classes/conf.properties
/D:/codes/trunk/client/web/IBMS/myworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/webclient/WEB-INF/classes/
/D:/codes/trunk/client/web/IBMS/myworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/webclient/WEB-INF/classes/com/gmi/client/
/D:/codes/trunk/client/web/IBMS/myworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/webclient/WEB-INF/classes/
D:\codes\trunk\client\web\IBMS\myworkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\webclient\login.jsp
1

 

此外,对于读写配置文件,例如properties文件,Java还提供了getResourceAsStream(“文件”)方法返回一个InputStream供读取文件: 
InputStream is = this.getClass().getClassLoader().getResourceAsStream(“conf.properties”); 


好了,以上也只是一部分方法,还有诸多不足之处,后续补充,欢迎指正!!!

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM