首先我們來看一下檔案的結構
當我們想要獲取mysql.properties、oracle.properties、bayonetconfig.txt檔案裡面內容的時候,我們一般會採用不同的方式,面對是properties,那麼我所採用的是
resourcebundle bundle = resourcebundle.
getbundle
(resourcefile)
; string driver = bundle.
getstring
("driver");
string url = bundle.
getstring
("url");
string username = bundle.
getstring
("username");
string password = bundle.
getstring
("password"
);
其中resourcefile只需要配置檔案的字首名稱,也就是說,不需要properties這樣的字尾名稱。
那麼我所採用的的方法是
public
final inputstream inputstream =
this
.getclass()
.getclassloader()
.getresourceasstream
("bayonetconfig.txt"
);
在需要的地方使用
這樣就可以來實現檔案的讀取。
在讀取bayonetconfig.txt時候,使用
public
final string bayonet_path =
this
.getclass()
.getclassloader()
.getresource
("bayonetconfig.txt").
getpath()
;
能獲取檔案的路徑,但是一旦我打包成jar的時候,就會提示我找不到檔案。
我在查閱了相關的部落格後,得知了一些原因。
當我在idea裡面進行除錯的時候,檔案是真實存在於磁碟的某個路徑的,所以能正常的進行讀取
而打成jar後,檔案是存在於jar檔案裡面的資源檔案,在磁碟是沒有真實的路徑的,所以無法通過
this
.getclass()
.getclassloader()
.getresource
("bayonetconfig.txt").
getpath()
;
來獲取進行獲取
public
final inputstream inputstream =
this
.getclass()
.getclassloader()
.getresourceasstream
("bayonetconfig.txt"
);
獲取的流來進行讀取檔案的內容。
查閱的相關部落格,十分感謝
還有乙個可以待考證的
classpathresource resource =
newclasspathresource
("export/aaa.txt");
inputstream inputstream = resource.
getinputstream()
;
Maven專案讀取resources目錄下檔案
如題,這裡只提供一種簡便方法,源於spring的支援,但是又可以脫離spring框架的使用。如下 resource res new classpathresource folder file.txt 這是其中一種,讀取web專案下檔案通常有以下 一般在配置 中,可以使用spring提供的classp...
Android中的Resources解析
private 1.1 獲取應用資訊loadedapk data info getpackageinfonocheck data compatinfo info 一 獲取應用資訊loadedapkpublic compatibilityinfo compatinfo classloader base...
如何使用unity中Resources檔案
unity有幾種特殊資料夾。其中乙個檔案是resources資料夾。儲存資源的簡單概念已經在 官方文件中被很好的解釋 通常,我們在場景中建立資源的例項以便在遊戲設定中使用它們。不過unity還允許從指令碼即時載入資源。通過將資源放在乙個叫resources 的資料夾或它的子資料夾 實際上可以有任意數...