如何獲得類路徑下的檔案?

2021-09-01 14:27:56 字數 1447 閱讀 4181

關於獲得到類路徑檔案的辦法,不廢話了。

1.inputstream url = tester.class.getclassloader().getresourceasstream("path.properties");

經過本人實踐分析,通過某個類的類載入器,可以獲得指定檔案或路徑的位元組流。

1.1其中path.properties通常為web-inf資料夾下classes資料夾下的乙個資源檔案。

1.2也可以是getresourceasstream("com/a/b/c/path.properties");

也就是classes資料夾下,com包下的a包b包c包下的path.properties,帶路徑也可以。

2.inputstream url = tester.class.getresourceasstream("/busincontext.xml");

方式二,與方式一類似,都是最終得到乙個流。區別在於使用這種方式時,路徑必須以'/'開始,意思是從類路徑的根位置,去找某個檔案或資源。

3.string url = tester.class.getresource("/services.list").getfile();

方式三,得到乙個資源的絕對路徑,所有非classloader的方式,都是要指定下 '/'根位置。

4.string url = tester.class.getclassloader().getresource("build.xml").getfile();

方式四,獲得資源的絕對路徑,比如:f:/rxt_workspace/zftweb/webroot/web-inf/classes/build.xml

總結:

1.用classloader獲取資源位置或流物件時,就不要寫'/'路徑

2.用class.getresource();獲取資源位置或流物件時,必須寫 '/' ,且必須是斜槓,反斜槓不行。

核心重點是:什麼是類路徑,通常為webroot--web-inf--classes資料夾的路徑,即為類路徑。

但這不是絕對的,其實可以是很多路徑,多少取決於你設定了多少類路徑。比如用axis2-webservice組建發布ws服務時,會產生乙個名為pojo的目錄,該目錄下存放了所有ws物件.class檔案。那麼該路徑也是乙個類路徑。

具體配置在,如圖:

工程--build path--source新增源資料夾, 然後設定output folder路徑

意思為,乙個源資料夾將編譯後的.class 檔案生成到output folder路徑中,output folder就是你所指定的類路徑中。

所以,上面的4種方式,都是從類路徑下找資源,搞清楚這一點,以後拿任何檔案,都不在話下!

多交流多分享~有不對的地方,還請指明!

獲得檔案路徑

1 獲得絕對路徑 eg.c yuanzhenhai littlesea.txt 2 當前相對路徑 eg.littlesea.txt 3 獲得目錄上一層的相對路徑 假如已經知道當前路徑是.littlesea.txt 得到它的上一層路徑yuanzhenhai中的xiaohai.txt路徑的方法是 eg....

C 如何獲得檔案儲存路徑的 txt檔案

煙台大學計算機學院學生 all right reserved.檔名稱 c 如何獲得檔案儲存路徑的.txt檔案 完成日期 2014年9月2日 版本號 v1.0 對任務及求解方法的描述部分 c 如何獲得檔案儲存路徑的.txt檔案 我的程式 using system using system.collec...

如何獲得指令碼檔案所在路徑

在unix或linux上做開發,經常用到指令碼。我就遇到這樣乙個問題 如何獲得指令碼檔案所在路徑呢?注意這個路徑和當前工作路徑是不同的,用 pwd 或 獲得的是當前工作路徑,不是我所要的最終結果。在網上搜了半天也沒找到乙個切實可行的辦法,看來還得靠自己。下面把我的解決辦法貼出來供大家分享吧 舉個例子...