Вот встала проблема. Русский текст из файла property считывался кракозябрами.Google выдал следующие:
Русские буквы в файлах properties
Для чтения файлов properties используются методы загрузки ресурсов, которые работают специфичным образом. Собственно для чтения используется метод Properties.load, который не использует file.encoding (там в исходниках жёстко указана кодировка ISO-8859-1), поэтому единственный способ указать русские буквы — использовать формат \uXXXX и утилиту native2ascii.
Метод Properties.save работает по разному в версиях JDK 1.1 и 1.2. В версиях 1.1 он просто отбрасывал старший байт, поэтому правильно работал только с англицкими буквами. В 1.2 делается обратное преобразование в \uXXXX, так что он работает зеркально к методу load.
Если файлы properties у вас загружаются не как ресурсы, а как обычные файлы конфигурации, и вас не устраивает такое поведение — выход один, написать собственный загрузчик.
Русские буквы и не только
Не сильно отчаявшись, появилось решение. Используем inputStreamReader:
final Properties settings = new Properties();
FileInputStream in = null;
InputStreamReader inR = null;
try {
in = new FileInputStream("config/welcome.properties");
inR = new InputStreamReader(in, "UTF-8");
} catch (UnsupportedEncodingException ex) {
...
} catch (FileNotFoundException ex) {
...
}
try {
settings.load(inR);
} catch (IOException ex) {
...
}
