Как написать добавить новые значения в файл свойств без повторной записи всего файла? - PullRequest
0 голосов
/ 28 августа 2018

Я использую 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());
        }

    }

Я использую инструмент-переводчик для генерации новых свойств, и мне нужно, чтобы файл был неповрежденным, чтобы его можно было сравнить в конце. файл снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...