Java中取资源时,经常用到Class.getResource和ClassLoader.getResource。昨天老师讲解题目时候,问我们为什么你们都是在文件前家上"/":
~~~
String path = Resources.class.getResource("/a.txt").getPath();
~~~
注:在Resources文件下创建了a.txt文件
我想我反正是试出来的,不使用"/"不行。为了正式解答心中的疑惑,我们正式来看看Resources路径问题。
### 1\. Class.getResource(String path)
~~~
path不以’/'开头时,默认是从此类所在的包下取资源;
path以’/'开头时,则是从ClassPath根下获取;
~~~
~~~
System.out.println("path:"+Resources.class.getResource("/"));
System.out.println("path:"+Resources.class.getResource(""));
~~~
输出结果:
path:file:/home/xiaosi/Study/lectures/target/classes/
path:file:/home/xiaosi/Study/lectures/target/classes/com/qunar/lectures/
### 2\. ClassLoder.getClassLoder.getResource(String path)
~~~
path不能以’/'开头时;
path是从ClassPath根下获取;
~~~
~~~
System.out.println(r.getClass().getClassLoader().getResource(""));
System.out.println(r.getClass().getClassLoader().getResource("/"));//null
~~~
输出结果:
file:/home/xiaosi/Study/lectures/target/classes/
null
- 前言
- [Hibernate开发之路](1)Hibernate配置
- [Hibernate开发之路](2)Hibernate问题
- [Hibernate开发之路](3)基础配置
- [Hibernate开发之路](4)ID生成策略
- [Hibernate开发之路](5)联合主键
- [设计模式实践之路](1)单例模式
- [Java]UDP通信的简单例子
- [Java]套接字地址InetAddress讲解
- [Java开发之路](1)final关键字
- [Java开发之路](2)Java字符串
- [Java开发之路](3)Java常用类
- [Java开发之路](4)String、StringBuffer与StringBuilder详解
- [Java开发之路](5)异常详解
- [Java开发之路](6)File类的使用
- [Java开发之路](7)RandomAccessFile类详解
- [Java开发之路](8)输入流和输出流
- [Java开发之路](9)对象序列化与反序列化
- [Java开发之路](10)DOM解析XML文档
- [Java开发之路](11)SAX解析XML文档
- [Java开发之路](12)JDOM和DOM4J解析XML文档
- [Java开发之路](14)反射机制
- [Java开发之路](15)注解
- [Java开发之路](16)学习log4j日志
- [Java开发之路](18)关于Class.getResource和ClassLoader.getResource的路径问题
- [Java开发之路](19)Long缓存问题
- [Java开发之路](20)try-with-resource 异常声明
- [Java开发之路](21)Comparator与Comparable
- [Java]Java工程师成神之路
- [细说Java](1)图说字符串的不变性
- [细说Java](2)Java中字符串为什么是不可变的
- [细说Java](3)创建字符串是使用" "还是构造函数?