我需要類似ResourceBundles
,只是我不會使用它的定位系統。基本上,我需要存儲幾個版本的設置。該設置的一個版本是字符串到字符串映射,可以用Properties
文件表示。這些設置版本必須易於持久保存到應用程序.jar中的文件系統(類似於PropertyResourceBundle
)。「資源包」的堅持等則定位數據
的想法是具有不同版本的應用程序設置(設置簡檔)中,由字符串類型的鍵 - 值對錶示的,這可從在應用基於用戶的決定來選擇啓動。這些又不是語言版本,所以ResourceBundle
(根據它的javadoc)不是實現它的正確方法。
任何簡單的方法如何做到這一點,但沒有實施全認爲自己?請不要建議第三方應該只使用Java SE類。
編輯:我忘了提一個重要的細節。我很難像這樣得到流:Thread.currentThread().getContextClassLoader().getResourceAsStream("/your/resource/here");
。這是因爲包含屬性文件的項目由Ant編譯,並在實際運行的不同GUI項目中用作動態加載的庫。我可能有固定的項目文件夾中的所有屬性文件,但由於Thread.currentThread().getContextClassLoader()
返回GUI項目的情況下,我不知道該項目是一個具有放置由Ant屬性文件中的.jar我不知道以什麼作爲"/your/resource/here"
使用。
如何使用'java.util.Properties'?根據您當前的配置文件加載屬性文件,並在配置文件更改後立即重新加載。 – SpaceTrucker
我想到了,但是我喜歡'ResourceBundle',它自動爲我找到'.properties'文件的位置。如果我要根據當前的配置文件手動加載'.property'文件,那麼根據我的應用程序的位置,將會有相當多的混亂代碼找到'.properties'文件的位置,所以我可以創建'FileInputStream'並加載文件轉換成「屬性」。 – drasto
但是,如果需要存儲配置文件設置的慣例,這可能是件好事。所以你不必到處尋找它。 – SpaceTrucker