Как написать в файл YAML с помощью SnakeYaml?

рассмотрим следующий код:

public static void dumpObjectToYaml(String key, Object O, String path) throws IOException
{
    Map<String, Object> data = new HashMap<>();
    data.put(key, O);

    File F = new File(path);
    F.mkdirs();
    F.createNewFile();

    //write data to File
}

этот метод направлен на запись данного объекта O в данный ключ, в файл YAML по заданному пути. (если он не существует, он создается.), Но, очевидно, основная часть все равно отсутствует.

Теперь следующее документация SnakeYaml, чтобы создать YAML, мне нужно только создать карту и поместить объекты в правильные клавиши, что я и сделал.

но нигде (по крайней мере я не вижу его) описано, как создать файл yaml по определенному пути!

единственное, что я нашел, было:

"В Формате YAML.метод dump (Object data) принимает объект Java и создает документ YAML"

public void testDump() 
{
    Map<String, Object> data = new HashMap<String, Object>();
    data.put("name", "Silenthand Olleander");
    data.put("race", "Human");
    data.put("traits", new String[] { "ONE_HAND", "ONE_EYE" });
    Yaml yaml = new Yaml();
    String output = yaml.dump(data);
    System.out.println(output);
}

и

"в YAML.дамп (данные объекта, вывод записи) запишет созданный документ YAML в указанный файл/поток."

public void testDumpWriter() 
{
   Map<String, Object> data = new HashMap<String, Object>();
   data.put("name", "Silenthand Olleander");
   data.put("race", "Human");
   data.put("traits", new String[] { "ONE_HAND", "ONE_EYE" });
   Yaml yaml = new Yaml();
   StringWriter writer = new StringWriter();
   yaml.dump(data, writer);
   System.out.println(writer.toString());
}

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

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

1 ответов


если я понял вопрос, это, похоже, не имеет ничего общего с YAML или SnakeYAML как таковым, но связано с тем, как вы пишете в определенный файл на Java. В принципе, второй пример, который вы скопировали, показывает, как сбросить объект в произвольное java.io.Writer