Я использую property.load Java и property.setProperty, чтобы добавить новое свойство в файл свойств. Но при выполнении props.store файл полных свойств переписывается, и порядок существующих свойств в файле также изменяется. Ниже приведен мой фрагмент кода.
private void test() {
try {
Properties props = new Properties();
String src = "Path_To_Properties_File";
props.load(new FileInputStream(src));
props.setProperty("C", "3");
props.store(new FileOutputStream(src), null);
} catch (Exception e) {
e.printStackTrace();
}
}
Например, скажем, перед операцией файл свойств содержит-
A=1
B=2
Опубликовать операцию, результат-
#Tue Aug 28 14:57:24 IST 2018
A=1
C=3
B=2
Я пытался использовать API конфигурации Apache Commons. Но, похоже, он также перезаписывает файл только новыми свойствами. Соответствующий блок кода -
private void test1() throws ConfigurationException {
try {
Parameters params = new Parameters();
FileBasedConfigurationBuilder<FileBasedConfiguration> builder =
new FileBasedConfigurationBuilder<FileBasedConfiguration>(PropertiesConfiguration.class)
.configure(params.properties()
.setFileName(Path_To_Properties_File));
Configuration config = builder.getConfiguration();
config.setProperty("C", "3");
builder.save();
}
catch (Exception ex)
{
System.out.println(ex.getMessage());
}
}
Я использую инструмент-переводчик для генерации новых свойств, и мне нужно, чтобы файл был неповрежденным, чтобы его можно было сравнить в конце. файл снова.