java中獲取類資源的方法總結(jié)
介紹兩種獲取資源的方式:
一、通過ClassLoader獲?。?/strong>
loader.getResourceAsStream("a/b/temp.txt");--獲取src下/a/b包下的temp.txt資源
二、通過Class獲?。?/strong>
加"/":
與ClassLoader一樣。class.getResourceAsStream("/a/b/temp.txt")
不加"/":
class.getResourceAsStream("temp.txt")。表示獲取當(dāng)前類路徑下的資源。
舉個栗子:
【項目路徑如下】

【classes路徑如下】

【測試代碼】
package com.io.test;
import java.io.InputStream;
public class TestIo {
public static void main(String[] args) {
//一、通過ClassLoader方式
ClassLoader loader = TestIo.class.getClassLoader();//直接從跟路徑搜索
InputStream a1 = loader.getResourceAsStream("a.txt");
InputStream b1 = loader.getResourceAsStream("test/file/b.txt");
InputStream c1 = loader.getResourceAsStream("com/io/test/c.txt");
System.out.println("a1=>"+a1);
System.out.println("b1=>"+b1);
System.out.println("c1=>"+c1);
//二、通過Class方式
Class<TestIo> clazz = TestIo.class;
InputStream a2 = clazz.getResourceAsStream("/a.txt");//斜杠表示直接從根路徑開始搜索
InputStream a3 = clazz.getResourceAsStream("../../../a.txt");//通過相對路徑
InputStream c2 = clazz.getResourceAsStream("c.txt");//當(dāng)前類路勁,相對路徑
InputStream c3 = clazz.getResourceAsStream("/com/io/test/c.txt");//從跟路徑開始搜索
System.out.println("a2=>"+a2);
System.out.println("a3=>"+a3);
System.out.println("c2=>"+c2);
System.out.println("c3=>"+c3);
}
}
a1=>java.io.BufferedInputStream@15db9742 b1=>java.io.BufferedInputStream@6d06d69c c1=>java.io.BufferedInputStream@7852e922 a2=>java.io.BufferedInputStream@4e25154f a3=>java.io.BufferedInputStream@70dea4e c2=>java.io.BufferedInputStream@5c647e05 c3=>java.io.BufferedInputStream@33909752
以上就是本次介紹的全部相關(guān)知識點,如果大家有任何補充的地方可以聯(lián)系腳本之家小編。
相關(guān)文章
java實現(xiàn)excel導(dǎo)出合并單元格的步驟詳解
這篇文章主要介紹了java實現(xiàn)excel導(dǎo)出合并單元格,通過使用Apache POI庫,我們可以方便地創(chuàng)建Excel文件、填充數(shù)據(jù)、合并單元格和導(dǎo)出Excel文件,需要的朋友可以參考下2023-04-04
Java Lambda表達(dá)式與匿名內(nèi)部類的聯(lián)系和區(qū)別實例分析
這篇文章主要介紹了Java Lambda表達(dá)式與匿名內(nèi)部類的聯(lián)系和區(qū)別,結(jié)合實例形式分析了Java Lambda表達(dá)式與匿名內(nèi)部類功能、用法、區(qū)別及操作注意事項,需要的朋友可以參考下2019-10-10
kafka?消息隊列中點對點與發(fā)布訂閱的區(qū)別說明
這篇文章主要介紹了kafka?消息隊列中點對點與發(fā)布訂閱的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
SpringBoot下使用自定義監(jiān)聽事件的流程分析
事件機制是Spring的一個功能,目前我們使用了SpringBoot框架,所以記錄下事件機制在SpringBoot框架下的使用,同時實現(xiàn)異步處理,這篇文章主要介紹了SpringBoot下使用自定義監(jiān)聽事件,需要的朋友可以參考下2023-08-08
SpringBoot實現(xiàn)統(tǒng)一功能處理的教程詳解
這篇文章主要為大家詳細(xì)介紹了SpringBoot如何實現(xiàn)統(tǒng)一功能處理,文中的示例代碼講解詳細(xì),對大家學(xué)習(xí)或工作有一定借鑒價值,感興趣的同學(xué)可以參考閱讀下2023-05-05

