Доступ и кодирование файлов свойств - PullRequest
2 голосов
/ 22 декабря 2010

Я привык работать с файлами свойств, например из Ant.Где я могу просто сослаться на файл свойств, выполнив что-то вроде этого:

<property file="webapp_DO_NOT_COMMIT.properties"/>

(файл назван так, потому что наш DVCS настроен так, чтобы никогда не фиксировать файлы, содержащие "DO_NOT_COMMIT", чтобы предотвратить фиксацию учетных данных / паролей / и т.д..)

Вот очень простой пример файла .properties :

passwd=brokencleartextpassword

Теперь я хочу поместить некоторую конфигурацию в другой, похожий файл свойств, который мне нужендоступ из моего кода Java.Как мне поступить?

У меня также есть еще один связанный с этим вопрос: определяется ли кодировка файла .properties какой-либо спецификацией?

1 Ответ

9 голосов
/ 22 декабря 2010

Поместите его в classpath, а затем загрузите его с помощью java.util.Properties API.

Properties properties = new Properties();
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("filename.properties"));

Что касается кодировки, то это ISO-8859-1, как указано в API.javadoc.

... поток ввода / вывода кодируется в кодировке символов ISO 8859-1....

Но вы можете обойти его, вместо этого введя Reader (который является новым с Java 1.6).

Properties properties = new Properties();
InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("filename.properties");
properties.load(new InputStreamReader(input, "UTF-8"));

См. Также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...