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)創建字符串是使用" "還是構造函數?