Интеграция данных в файл yaml в Java - PullRequest
0 голосов
/ 18 декабря 2018

1 - Я хочу записать в файл yaml значение 000089, но всегда yaml берет только 89 мой файл yaml. Мне нужны результаты, подобные:

Ожидаемый результат:

codeClient:  00000068

2 - когдазначение1 находится в строке, и я получаю результат:

codeClient:  '00000068'

3 - когда значение1 в целочисленном виде:

codeClient:  68

2 - я пишу с этой функцией:

public  static void getTestDumpWriter(String yamlFile,String key1,String 
 value1) throws IOException { 
    Map<String, String> data = new HashMap<String, String>();
     data.put(key1, value1);
     DumperOptions options = new DumperOptions();
     options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
     options.setSplitLines(false);
     Yaml yaml = new Yaml(options);
     BufferedWriter writer = 
            new BufferedWriter(new FileWriter(yamlFile, false));
     yaml.dump(data, writer); 
     }

Любая помощь плззз !!!!

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Переменная value1 является строкой, поэтому я предполагаю, что вы вызываете функцию getTestDumpWriter следующим образом:

int id = 68;
getTestDumpWriter(yamlFile, "codeClient", Integer.toString(id));

И целое число 68 преобразуется в строку "68".Вам нужно сразу отформатировать его, потому что Yaml не сделает этого за вас.

int id = 68;
getTestDumpWriter(yamlFile, "codeClient", String.format("%08d", id));
0 голосов
/ 18 декабря 2018

Когда вы пытаетесь проанализировать цифру, начинающуюся с нуля, YAML-парсер пытается управлять ей как восьмеричным числом.Но если число цифр меньше 7, оно будет конфискованным, и результат может быть очень неожиданным.В вашем случае вы используете строковый тип, поэтому он будет сохранен как «000089».Я полагаю, что нет другого способа сохранить десятичное число с начальными нулями, а затем проанализировать его как целое число.

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