Подтвердить что ты не робот

Обновление значения свойства в файле свойств без удаления других значений

Содержимое First.properties:

name=elango
country=india
phone=12345

Я хочу изменить country от india до america. Это мой код:

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

Другие свойства удаляются. Я хочу обновить определенное значение свойства, не удаляя другие свойства.

4b9b3361

Ответ 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. Лучшая часть, если это так, она даже не испортит файл свойств и не сохранит его (даже комментарии).

Javadoc

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

Ответ 3

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