У класса ResourceBundle определено два прямых потомка ListResourceBundle и PropertiesResourceBundle. PropertiesResourceBundle хранит набор ресурсов в файле, который представляет собой набор строк.
Алгоритм конструирования объекта, содержащего набор ресурсов, был описан в предыдущем параграфе. Во всех случаях, когда в качестве последнего элемента используется .properties, например, baseclass + "_" + language1 + "_" + country1 + ".properties", речь идет о создании ResourceBundle из файла с наименованием baseclass + "_" + language1 + "_" + country1 и расширением properties. Обычно класс ResourceBundle помещают в пакет resources, а файл свойств – в каталог resources. Тогда для того, чтобы инстанциировать нужный класс, необходимо указать полный путь к этому классу (файлу):
getBundle("resources.MyResource", Locale.getDefault());
ListResourceBundle хранит набор ресурсов в виде коллекции и является абстрактным классом. Классы, которые наследуют ListResourceBundle, должны обеспечить:
Рассмотрим пример:
Пример 14.32.
(html, txt)
Результатом будет:
Element 1 Element 2 Element 3
Создание ресурсов для локалей, отличных от локали по умолчанию, осуществляется так же, как было показано для ResourceBundle.