對於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)
} (english)
varef/ja va.util.resourcebundle_dsc.htm
(中文)
如何用軟文推廣
如何用軟文推廣呢?2 作為 魚餌 讓客戶通過付出一些行動,比如幫忙推廣10個ip,或者通過加qq,留下郵箱 手機號等方式,獲得大量的精準潛在客戶資料庫,最大化軟文的效率。高質量軟文製作技巧 寫作軟文前,一定要做好規劃,明確軟文推廣要達到的目的,了解消費者的對產品的各種問題和顧慮,針對性的提出解決方案...
如何用gitbook寫書
生成一本小書,它有前言,章節1,章節2,後記。例如 簡介 第一章 如何造火箭 1.燃料學 2.空氣動力學 3.工程學 第二章 如何 火箭 1.自動控制原理 2.二次利用要點 結束建乙個寫書的目錄,以後所有工作都在這個目錄下搞。例如 users raywill gitbook first在電腦上建立整...
如何用好Google?
如何提高自己的搜尋技術?男性凱格爾運動 掌握搜尋邏輯和搜尋思路。願意為優質的付費是高效的解決問題思路。盡量少使用搜尋引擎 針對不同的問題使用不同的資料庫。搜尋心法 找什麼 找 怎麼找。搜尋技巧 遇到問題 第一件事就是搜尋 搜尋。搜尋也是可以轉變思維方式 書友沙龍 可直接看轉化為 樊登讀書會 舉辦的讀...