class.getResources()和classLoader.getResources()
来源:互联网 发布:贪吃蛇大作战 数据 编辑:程序博客网 时间:2024/06/05 18:06
Class.getResources()和classLoader.getResources()区别
Class.getResources()
Class.getResources(String path) path如果是以 / 开头,就从classpath中去找(classpath可以认为是eclipse的bin目录或者是target的classes目录),如果不以/开头,就以当前类的位置开始找,假如实在上一级目录,那么就是 ../application/xml.
获取application.xml文件的方式有
<!--从当前类的位置去查找 -->System.out.println(IndexService.class.getResource("application.xml"));
<!--从classpath下查找该文件 -->System.out.println(IndexService.class.getResource("/main/test/com/jt3/web/application.xml"));
classLoader.getResources()
获取当前类的加载器,从加载器的环境下进行加载,就是classpath目录下,注意不能用/开头,至于是为什么,看图
System.out.println(IndexService.class.getResource(""));
后面已经有一个/了,说明就是直接从classpath/目录下查找
<!-- 从当前classpath下找到-->System.out.println(IndexService.class.getResource("/main/webapp/WEB-INF/applicationContext.xml"));
class.getResourceAsStream 和getClassLoader().getResourceAsStream
class.getResourceAsStream,如之前的class.getResource一样,只不过包装了一个流,返回给你一个输入流
<!-- 从当前类的位置开始找-->InputStream in = IndexService.class.getResourceAsStream("application.xml"); in.read(bytes); System.out.println(new String(bytes,new String("UTF-8")));
<--从classpath下找,注意要加上/ -->InputStream in = IndexService.class.getResourceAsStream("/main/test/com/jt3/web/application.xml");
getClassLoader().getResourceAsStream
获取当前类的类加载器,在classpath下加载,不要加/
InputStream in = IndexService.class.getClassLoader().getResourceAsStream("main/test/com/jt3/web/application.xml");
还有一种比较安全的做法
<!-- 这个做法就是,获取当前的线程的类加载器,效率比较高--> InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("main/test/com/jt3/web/application.xml");
总结
可以看到的是,class.getResource() 和 classLoader.getResource(),class的方法是对classLoader的包装,其实底层都是Jvm封装的绝对路径来找地址,而个人也建议不要用绝对路径,因为可能随着环境的更变,产生classpath的目录不同,这是必然会产生错误。getResourceAsStream就是getResource的封装,相当于先用Resource获取一个文件路径,在一个new InputStream(获取到的文件路径),给你返回一个流。请注意,classLoader中的路径不能用/开头,不然只能获取不到,为null
阅读全文
0 0
- class.getResources()和classLoader.getResources()
- classloader.getresources() 介绍
- classloader.getresources()介绍
- ClassLoader.getResource()与getResources()
- classloader.getresources() 介绍
- classloader.getresources()介绍
- 过时的getResources().getColor,和getResources().getDrawable
- Resources.getSystem() 和 getResources()
- Android getResources()
- android getResources
- getResources()方法
- getResources()方法
- Android --- 读取系统资源 getResources
- 读取系统资源函数getResources()
- 读取系统资源函数getResources()
- getResources 带来的 NullPointerException
- swipeListView.getContext().getResources().getInteger
- 读取系统资源 getResources
- httpclient4.3 封装工具类
- eclipse项目上有红叉叉,但是项目没错,problem报:Tomcat v7.0 Unknown Faceted Project Problem
- 你有没有过那种明知是对的但却没能去做的事?
- 【Java虚拟机】之二 垃圾回收算法
- String的replzce源码解析
- class.getResources()和classLoader.getResources()
- linux网络编程--TCP分包 粘包 MTU 和MSS之间的关系分析
- Codeforces Round #427 (Div. 2) C. Star sky
- Java多线程(学习篇)
- 泛型总结
- eclispe转 idea 快捷键设置(包括文件搜索运用)修改插入和改写模式
- 顺序结构,选择结构,循环结构的概念,用法,实例
- I/O流
- height、clientHeight、scrollHeight、offsetHeight区别