Обновление значения свойства в файле свойств без удаления других значений
Содержимое 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
Другие свойства удаляются. Я хочу обновить определенное значение свойства, не удаляя другие свойства.
Ответы
Ответ 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