52

内容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

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

4

3 回答 3

97

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

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();
于 2013-03-11T11:31:36.030 回答
27

您可以使用Apache Commons 配置库。最好的部分是,它甚至不会弄乱属性文件并保持完整(甚至是注释)。

Javadoc

PropertiesConfiguration conf = new PropertiesConfiguration("propFile.properties");
conf.setProperty("key", "value");
conf.save();    
于 2016-09-04T20:44:07.500 回答
9
Properties prop = new Properties();
prop.load(...); // FileInputStream 
prop.setProperty("key", "value");
prop.store(...); // FileOutputStream 
于 2013-03-11T11:39:45.097 回答