若是簡單使用信息文件message.properties,能夠使用java.util.Properties直接load文件便可獲取鍵值對。html
可是若是考慮到國際化,須要將message.properties的內容寫成不一樣語言的文字,也許能夠考慮分別創建message.properties,message1.properties,message2.properties等等的文件存儲不一樣的語言文字,而後在使用java.util.Properties加載時,使用Locale.getDefault()獲取默認語言,或者根據客戶端信息生成Locale實例,以此來寫一堆if語句逐個判斷使用哪一個properties文件。java
java.util.ResourceBundle就是將上面的過程簡化的類,ResourceBundle.getBundle("message",Locale.getDefault())能夠根據Locale的值自動判斷對應的message.properties文件,可是自動老是要有代價的,就是命名properties文件時,有固定格式:自定義名_語言代碼_國家代碼.properties。若是沒有對應Locale的文件,會再找默認的message.properties。
關於語言和國家以下:工具
語言參數是一個有效的 ISO 語言代碼。這些代碼是由 ISO-639 定義的小寫兩字母代碼。在許多網站上均可以找到這些代碼的完整列表,如: http://www.loc.gov/standards/iso639-2/englangn.html。 國家參數是一個有效的 ISO 國家代碼。這些代碼是由 ISO-3166 定義的大寫兩字母代碼。在許多網站上均可以找到這些代碼的完整列表,如: http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html。
最後,資源文件都必須是ISO-8859-1編碼,因此如中文GBK等字符集編碼文件,須要使用JDK自帶的工具native2ascii轉碼,命令:native2ascii -encoding 源文件字符集 源文件名 目標文件名。網站