Java獲取resources下的檔案

2021-09-16 11:55:26 字數 2073 閱讀 1406

首先我們來看一下檔案的結構

當我們想要獲取mysql.propertiesoracle.propertiesbayonetconfig.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 的資料夾或它的子資料夾 實際上可以有任意數...