例如有一个文件:a.yml
hzero:
oauth:
login:
# 登录页面模板 main/slide
default-template: main
我想在java中读出来,做添加配置或者删除配置,然后重新写到b.yml中
比如加一个配置,配置是这样存的:
hzero.oauth.login.username: wlg
加完后存到b.yml中,
希望是如下样式:
hzero:
oauth:
login:
# 登录页面模板 main/slide
default-template: main
username: wlg
现在我使用的是snakeyaml操作的,读出来是个map,在map中去新增/删除配置,然后map转yml存到b.yml中。
转换工具类:
public static Map<String, Object> yml2Map(String path) throws FileNotFoundException {
FileInputStream fileInputStream = new FileInputStream(path);
Yaml yaml = new Yaml();
Map<String, Object> ret = (Map<String, Object>) yaml.load(fileInputStream);
return ret;
}
public static void map2Yml(Map<String, Object> map, String path) throws IOException {
File file = new File(path);
FileWriter fileWriter = new FileWriter(file);
DumperOptions options = new DumperOptions();
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
Yaml yaml = new Yaml(options);
yaml.dump(map, fileWriter);
}
但是现在的问题是存到b.yml中没有a.yml中的注释了
hzero:
oauth:
login:
default-template: main
username: wlg
我也尝试了eo-yaml,虽然可以读取yml中的注解,但是eo-yaml中不好做新增、删除配置等操作
求大佬帮忙指教