Свойства vs Resource Bundle

Я читал о свойствах и ресурсах. Но я не мог получить разницу между ними. Когда использовать файл свойств и когда использовать Resource bundle.

Чтобы загрузить файл свойств, используйте следующий код

Properties tempProp = new Properties();
FileInputStream propsFile = new FileInputStream(xyz.properties);
tempProp.load(propsFile);

Загрузка ресурсного пакета

ResourceBundle labels =
    ResourceBundle.getBundle("xyz", currentLocale);
Enumeration bundleKeys = labels.getKeys();

В обоих случаях (в наборе ресурсов и в Propertyites) мы используем файл свойств. Единственное различие, которое я обнаружил, заключается в том, что для хранения данных конкретных приложений мы используем файл свойств и для использования данных i18n мы используем пакет ресурсов. Я не знаю, прав я или нет.

Я хотел бы знать использование двух вышеупомянутых. В чем разница между этими двумя.

Ответ 1

Да, вы думаете о правильных строках.

Пакеты ресурсов не должны использовать файлы свойств - это всего лишь одна реализация (PropertyResourceBundle). Файл свойств на самом деле является просто преобразованием строки в строку - и это может быть использовано для i18n, но не обязательно.

ResourceBundle дает вам последовательный способ запроса соответствующего объекта (обычно строки) для определенного языкового стандарта с резервными ошибками и т.д. Это часто, но не всегда, поддерживается отдельным файлом свойств для каждого языка.

Итак, да: если вы имеете дело с i18n, вы должны использовать ResourceBundle; если вам нужна только строка-строка, сохранившаяся в текстовом файле, прекрасно использовать Properties.

Ответ 2

ResourceBundle помогает загружать специфические для локали свойства. Если у вас есть другой файл свойств для каждого языкового примера DE, CN и т.д. ResourceBundle загрузит соответствующий конкретный файл локали.