понедельник, 10 декабря 2007 г.

Использование properties файлов

Хорошей практикой загрузки properties файлов является использование метода getResourceAsStream() класса java.lang.ClassLoader.
Пример:
 ClassLoader cl = this.getClass().getClassLoader();
InputStream is = cl.getResourceAsStream();
Properties props = new Properties();
try {
props.load(is);
}...
при этом следует помнить что корневой каталог будет меняться в зависимости от типа контейнера.
Для сервлетов он будет начинаться с корня war файла. т.е. мы получим что-то типа:
...getResourceAsStream("/WEB-INF/propfile.props");
Для EJB он будет начинаться с корня jar файла. т.е. код будет иметь вид:
...getResourceAsStream("/somepackage/propfile.props");
Если же properties файл используется в jar который упакован в war файл, или же он вызывется из другого jar файла, то необходимо указывать относительный путь
...getResourceAsStream("somepackage/propfile.props");
. При этом следует убедится что properties файл находится в области видимости (для jar файлов ссылки на другие пакеты можно задать в файле MANIFEST.MF:
Manifest-Version: 1.0
Class-Path: lib1.jar lib2.jar lib3.jar
Created-By: Oracle JDeveloper 10.1.3.2.0
).При чтении (записи) данных в properties файлы используется кодировка ISO 8859-1. При использовании других кодировок необходимо произвести преобразование строк. Например так:
label = new String(label.getBytes("ISO-8859-1"), "UTF-8");
Оригинал статьи

Комментариев нет: