apache-commons-config PropertiesConfiguration:最后一个属性丢失后的注释

时间:2011-06-14 17:45:45

标签: java properties configuration-files apache-commons

我正在使用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.
        }
    }
}

解决方法是在文件末尾添加虚拟属性。有正确的方法吗?

2 个答案:

答案 0 :(得分:2)

这是一个应该在项目的JIRA中报告的错误:)

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

答案 1 :(得分:0)

您可以尝试从**的开头删除**# end coment**,以防它产生影响。

同时检查在最后一行之后是否有空行是否有帮助。