更新属性文件中的属性值而不删除其他值

时间:2013-03-11 11:26:56

标签: java properties

First.properties的内容:

name=elango
country=india
phone=12345

我希望从country更改indiaamerica。这是我的代码:

import java.io.*;
public class UpdateProperty 
{
    public static void main(String args[]) throws Exception 
    {   
        FileOutputStream out = new FileOutputStream("First.properties");
        FileInputStream in = new FileInputStream("First.properties");
        Properties props = new Properties();
        props.load(in);
        in.close();
        props.setProperty("country", "america");
        props.store(out, null);
        out.close();
    } 
}

First.properties的输出内容:

country=america

删除其他属性。我想更新特定的属性值,而不删除其他属性。

3 个答案:

答案 0 :(得分:92)

关闭输入流后打开输出流并存储属性。

FileInputStream in = new FileInputStream("First.properties");
Properties props = new Properties();
props.load(in);
in.close();

FileOutputStream out = new FileOutputStream("First.properties");
props.setProperty("country", "america");
props.store(out, null);
out.close();

答案 1 :(得分:18)

您可以使用Apache Commons Configuration库。 如果这是最好的部分,它甚至不会弄乱属性文件并使其保持完整(even comments)。

Javadoc

PropertiesConfiguration conf = new PropertiesConfiguration("propFile.properties");
props.setProperty("key", "value");
conf.save();    

答案 2 :(得分:8)

Properties prop = new Properties();
prop.load(...); // FileInputStream 
prop.setProperty("key", "value");
prop.store(...); // FileOutputStream