我有一个简单的 java 程序,它使用snakeyaml 来读取 yaml 文件,并且我编辑了 yaml 对象的一些值。但我无法将对象转储回 yaml 文件。不确定将 yaml 对象转储到文件的正确方法是什么。
这是代码
InputStream input = new FileInputStream(new File("/etc/cassandra/cassandra.yaml"));
Writer output = null;
try {
output = new FileWriter("/etc/cassandra/cassandra.yaml");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Yaml yaml = new Yaml();
Map<String, Object> data = (Map<String, Object>) yaml.load(input);
System.out.println("yaml data is " +data.get("saved_caches_directory"));
data.put("saved_caches_directory", "/var/lib/cassandra/saved_new_caches");
yaml.dump(data, output);
System.out.println(output.toString());
output.write(data); // Error in this line.
}
我需要 yaml.dump() 将修改后的 yaml 对象转储回文件。我不确定写在那里是如何发生的。根据eclipse yaml.dump(data, output); 方法可用,其中输出是写入器对象。我不确定如何实例化写入对象以将其发送回文件。