apache-commons-config PropertiesConfiguration: комментарии после потери последнего свойства

Я использую PropertiesConfiguration для редактирования файла свойств. Это позволяет мне сохранять комментарии. Все работает нормально, за исключением комментариев, которые идут после последнего ключа.

Например входной файл

# *** A comment
GameCheck.no=No
**#  end coment**

Вывод показан ниже. Он потерял комментарий, который был после последнего ключа

# *** A comment
GameCheck.no = myvar

Код, как показано ниже.

package trials;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.configuration.PropertiesConfigurationLayout;

import java.io.FileWriter;
import java.io.IOException;

public class EditVersion {

    public static void main(String[] args) {

        try {
            PropertiesConfiguration config =  new PropertiesConfiguration("C:\\try\\in.properties");
            config.setProperty("application.version", "myvar");
            PropertiesConfigurationLayout layout = config.getLayout();

            config.save( new FileWriter( "c:/try/out.props"));
        } catch (ConfigurationException e) {

        } catch (IOException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
    }
}

Обходной путь заключается в добавлении фиктивного свойства ближе к концу файла. Есть ли правильный способ?


person Jayan    schedule 14.06.2011    source источник


Ответы (2)


Это ошибка, о которой следует сообщить в JIRA проекта :)

https://issues.apache.org/jira/browse/CONFIGURATION

person Emmanuel Bourg    schedule 24.07.2011
comment
Я еще не зарегистрировал там дефект :) - person Jayan; 25.07.2011

Вы можете попробовать удалить ** из начала **# end coment**, если это имеет значение.

Также проверьте, помогает ли это, если есть пустая строка сразу после вашей последней фактической строки.

person deltaforce2    schedule 15.06.2011