在不删除其他值的情况下更新属性文件中的属性值

2022-08-31 17:45:04

内容 :First.properties

name=elango
country=india
phone=12345

我想从 更改为 .这是我的代码:countryindiaamerica

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

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


答案 1

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

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();

答案 2

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

Javadoc

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