如何用ResourceBundle來讀取配置檔案

2021-06-29 05:11:26 字數 2098 閱讀 2973

對於ja va基礎很好的人來說,這個應該是簡單的不能再簡單的了。不過估計一些ja va新手不一定會知道(比如我,上次為別人寫乙個東西,需要從外存讀檔案來設定物件的值,因為不知道有resourcebundle這種東西,就自己用filereader在那搞,折騰了半天,最後還不能把配置檔案和jar包打在一起發布,鬱悶)。

我們可以在每個物件中用resourcebundle來讀配置檔案設定自己的值,也可以用乙個固定的物件去讀取然後儲存下來以便以後使用。在每個class中都去讀配置檔案會導致**散亂,所以,只用乙個class來進行讀取是比較合理的做法。另外,由於i/o的速度比較慢,如果負責讀取配置檔案的class是在每次用到這些配置項的時候去讀檔案,就容易成為效能上的瓶頸。為避免這樣的情況,可以在初始化的時候就把配置項一次全部讀入,並儲存在靜態成員變數中。不過不排除會有對配置項進行動態讀取的需求(因為某些應用是不能停掉的,比如應用伺服器。在這些應用執行期間更新了配置檔案,就需要在不不關閉應用的情況下重新讀入配置項)。以下的例子只考慮了靜態讀取的情況,如果是動態讀取,則可以把讀取配置檔案的**放到某個方法中,通過對某個事件的響應來呼叫該方法更新配置項。

假設我們用來讀取配置檔案的class叫testresourcebundle,配置項的值來自乙個叫property_en.properties的檔案(該檔案應該放到testresourcebundle所對應的classpath的目錄),有兩個值需要配置:name和value。首先,需要在該class中定義一些字串常量,如下:

public static final string properties_file_name = "property";

public static final string my_name_key = "name";

public static final string my_value_key = "value";

其中properties_file_name指出了檔案的名字。實際讀取的檔案應該是property_en.properties,但是只需要告訴resourcebundle檔名是"property"就足夠了。下劃線和後面的"en"表示的是本地化資訊。這裡的en代表"english",字尾properties是預設的。my_name_key和my_value_key表示配置項在配置檔案中的名字,用resourcebundle的getstring方法根據這些名字去讀取相應的值。

然後,定義需要配置的變數。這些變數應該是靜態的:

private static string myname;

private static string myvalue;

然後進行靜態初始化:

static

catch(exception ex)

}resourcebundle bundle = resourcebundle

.getbundle(properties_file_name, locale.english);

這行**初始化了乙個resourcebundle,locale.english用於指明本地化情況,因此會從"property_en.properties"中去讀取配置項。如果是locale.china,則會從property_zh.properties中讀取。這種機制使得程式的本地化變得簡單。

myname = bundle.getstring(my_name_key).trim();

這行**讀入配置檔案中名為"name"的變數的值,並賦給靜態變數myname。

此外這段**還包含了例外處理,當讀取失敗的時候,配置項會使用預設值。

這樣,該類就通過resourcebundle讀取外存上的配置檔案對資料進行了配置。

property_en.properties檔案的內容如下

# properties sample

#name=sega

value=100

其中以'#'開頭的行為注釋,resourcebundle在遇到這些行的時候會忽略掉。

以下為完整的測試**:

public class testresourcebundle

catch(exception ex)

}public void print()

public static void main(string args)

}

如何用軟文推廣

如何用軟文推廣呢?2 作為 魚餌 讓客戶通過付出一些行動,比如幫忙推廣10個ip,或者通過加qq,留下郵箱 手機號等方式,獲得大量的精準潛在客戶資料庫,最大化軟文的效率。高質量軟文製作技巧 寫作軟文前,一定要做好規劃,明確軟文推廣要達到的目的,了解消費者的對產品的各種問題和顧慮,針對性的提出解決方案...

如何用gitbook寫書

生成一本小書,它有前言,章節1,章節2,後記。例如 簡介 第一章 如何造火箭 1.燃料學 2.空氣動力學 3.工程學 第二章 如何 火箭 1.自動控制原理 2.二次利用要點 結束建乙個寫書的目錄,以後所有工作都在這個目錄下搞。例如 users raywill gitbook first在電腦上建立整...

如何用好Google?

如何提高自己的搜尋技術?男性凱格爾運動 掌握搜尋邏輯和搜尋思路。願意為優質的付費是高效的解決問題思路。盡量少使用搜尋引擎 針對不同的問題使用不同的資料庫。搜尋心法 找什麼 找 怎麼找。搜尋技巧 遇到問題 第一件事就是搜尋 搜尋。搜尋也是可以轉變思維方式 書友沙龍 可直接看轉化為 樊登讀書會 舉辦的讀...