Yaml文件读写的几种方式(JAVA)

时间:2025-04-04 21:24:38

Ymal:

   YAML是"YAML Ain't a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。

  数据结构可以用类似大纲的缩排方式呈现,结构通过缩进来表示,连续的项目通过减号“-”来表示,map结构里面的key/value对用冒号“:”来分隔。

Yaml yaml = new Yaml();
();

可将yaml文件读为map,也可将map转换为yaml格式;

忽略注释,读写会导致注释丢失;

注:可通过改进SnakeYaml,增加对注释的保存和记录,但较复杂且不能够应对全部情况(主要问题在于注释的位置,其关联下一行不为注释的内容,在下一行修改后容易出问题)

参考思路:snakeyaml操作yml文件中注释的处理_湖南第一帅的博客-****博客_snakeyaml注释

-yaml:

/decorators-squad/eo-yaml

支持注释读写的yaml包;

读取的时候,生成节点,在每一个节点上保存相应的注释;

写入的时候,根据节点,重新添加相应的注释;

读取和写入如下:

YamlMapping team = (
    new File("")
).readYamlMapping();
String architect = ("architect");
YamlSequence devs = ("developers");
YamlSequence devops = ("devops");
Map<String, Integer> grades = new HashMap<>();
("Math", 9);
("CS", 10);
YamlMapping student = (
    new Student ("John", "Doe", 20, grades)
).dumpMapping();