|
自從1.1版開始,Java中就存在資源包,使用這種資源包可以儲存和訪問在應(yīng)用程序中要使用到的本地特定資源對象。 一個本地特定資源的最簡單例子就是字符串對象。舉例來說,在下面的應(yīng)用程序中,要求輸出不同的消息,而這些消息取決于在命令行中的本地指定。我們用靜態(tài)的方法來創(chuàng)建一個資源包的實例: java.util.ResourceBundle.getBundle(): 其中g(shù)etBundle()方法有三個窗體來讓你選擇一個特定的locale和classloader,或者你可選擇默認(rèn)項來選擇默認(rèn)的locale和classloarder。 正如你在前面看到的那段代碼,得到一個資源包的實例并沒有什么實際價值。因為例子代碼locale使用英語表示的,所以在執(zhí)行上面這個方法的時候,ResourceBundle 就會從應(yīng)用程序的classpath中尋找名為“messages_en.properties”的文件。如果沒有找到此文件,那么就會出現(xiàn)java.util.MissingResourceException這樣一個錯誤提示。 在實際的應(yīng)用程序中,你可以根據(jù)用戶設(shè)定或是系統(tǒng)設(shè)定來選擇你的locale。下面是一個根據(jù)啟動時的設(shè)定來選擇locale的例子: Locale locale = Locale.ENGLISH; 在有了資源包的實例后,就可以調(diào)用一種get方式來獲得你想要的本地資源。 ResourceBundle類型定義了獲得字符串、字符串?dāng)?shù)組和獲得對象的方法。在這個例子中,一個字符串形式的“welcome.message”將被觸發(fā): String message = messages.getString("welcome.message"); 當(dāng)調(diào)用getString()函數(shù)的時候,ResourceBundle就從先前得到的工具文件中尋找有關(guān)鍵字名“welcome.message”的字符串對象。如果沒有找到關(guān)鍵字,那么就會出現(xiàn)java.util.MissingResourceException錯誤提示。 其中用到的道具文件就如下面這種形式: messages_en.properties: (請注意,上面的內(nèi)容是我們用自動翻譯工具翻譯成法語和德語的。)
除了字符串以外,你還可以對其他對象使用資源包。例如,你可以創(chuàng)建你自己的獨立于道具文件的資源包實例。不管你是需要儲存本地特定字符串還是需要處理其他更復(fù)雜的對象,資源包都能為你提供很好的選擇。 import java.util.Locale; |
|
|