вторник, 22 сентября 2009 г.

Русские буквы в файлах *.property

Вот встала проблема. Русский текст из файла 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) {
                ...
            }

суббота, 29 августа 2009 г.

Путь в тысячу миль начинается с одного шага

Рано или поздно любой софтверный проект либо загибается так и не найдя своего юзера либо получает выход новой версии с улучшенным функционалом и новыми багами. Усложнение проекта требует тщательного его документирования. Для этого придумали кучу систем включая WIKI. Лично я использую DocuWIKI. Ведение самой разработки можно осуществлять с использованием любого из существующих багтрекеров и подобных систем. Усложнение проекта требует еще кое-что. За счет чего усложняется проект? Не будем брать проблемы с тупым начальством и бестолковыми программистами. В основе усложнения проектов в основном лежит разрастание бизнеслогики и использование различных технологий и фреймворков. Что касается бизнеслогики, то ей пусть занимается WIKI, багтрекеры и прочие системы ведения проектов. А вот сохранять резюме после копания в том или ином фремворке имеет смысл делать в виде блога. Такого рода сбор опыта имеет преемущества.
Не стоит недооценивать подобную работу по ведению блога. Всегда можно вспомнить то, что забывается со временем. Новые участники разработки, не знакомые с той или иной технологией смогут получить быстрый старт в изучении теории, которая воплатилась в практику в их проекте.
Вот с этой позиции будет вестись данный блог. Будем надеяться что это начинание получит продолжение и будет полезно и мне и другим программистам.