1

我有以下代码,如果该属性不存在,则必须向 .properties 文件中的现有属性添加新值 - 创建它。

public String saveProperties(ArrayList<Property> properties, String customerId){
            final String userPropFieldName = "users." + customerId + ".rules";
            try{
                PropertiesConfiguration props = new PropertiesConfiguration("/home/mikhail/bzrrep/DLP/DLPServer/src/main/resources/rules.properties");

                for (Property property: properties){
                    String fieldName = "rules." + property.getName() + "." + property.getType();
                    String[] values = (property.getValue()).split("\\,");
                    for (String word: values){
                        System.out.print(word + " ");
                    }

                    if (util.exist(fieldName, props)){
                        props.setProperty(fieldName, values);
                    } else {
                        props.addProperty(fieldName, values);
                    }

                    String[] userProperties = props.getStringArray(userPropFieldName);
                    if (property.getAccepted()){
                        userProperties = util.addNewValue(userProperties, fieldName);
                    } else {
                        userProperties = util.removeValue(userProperties, fieldName);
                    }
                    props.setProperty(userPropFieldName, userProperties);
                }
            }catch (ConfigurationException e){
                e.printStackTrace();
            }
        return "Saved";
    }

我用调试器和所有值运行它,我的意思是,有属性的正确名称和数组中的正确值,所以,看到它出现了添加或设置新值,但最后我没有看不到属性文件中的任何更改。

4

1 回答 1

1

将修改后的属性保存到文件

props.save();

阅读更多:http ://commons.apache.org/proper/commons-configuration/userguide/howto_properties.html#Saving

顺便说一句,将属性直接保存到源代码(src/main/resources/rules.properties)通常是个坏主意。

于 2013-04-27T09:23:26.557 回答