Java中使用yaml格式配置文件

yaml简介

YAML是“YAML不是一种标记语言”的外语缩写
“YAML Ain't Markup Language”

反正就是一种标记语言呗,她不像xml那样繁琐,有那么多标签,他的格式比较简单,以数据为中心,侧重点是数据.

先来一个yaml格式的配置

repo:
  GIT_ANDROID_ROOT: git/android/
  REPO_MANIFEST_ADDR: ssh://gerrit.example.com:29418/git/android/platform/manifest
  REPO_MANIFEST_BRANCH: master
  REPO_MANIFEST_FILE: default.xml
  REPO_MIRROR: /home/mirror
  REPO_GROUP: ''
  REPO_GROUP_AMSS: amss,common
  REPO_GROUP_ANDROID: all,-amss
build:
  ANDROID_TARGET_PRODUCT_LIST: civic
  ANDROID_BUILD_VARIANT_LIST: user
  ANDROID_TARGET_CARRIER_LIST: whole_netcom
  ANDROID_BUILD_TYPE: release
  ANDROID_EXTRA_BUILD_STEPS: null
  ANDROID_EXTRA_BUILD_COMBINATION: civic,eng,fn,android:civic,userdebug,fn,android
  ANNOUNCE_LIST: null

如何使用java来读取写入yaml文件

这里使用snakeyaml这个模块来解析写入
maven的依赖坐标是:

<!-- https://mvnrepository.com/artifact/org.yaml/snakeyaml -->
<dependency>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>1.21</version>
</dependency>

读取是直接使用 yaml 对象中的load方法,会返回一个map对象的.然后遍历这个map得到自己想要的数据就可以了.

    private Map parseYaml(Path cf) {
        Yaml yaml = new Yaml();
        try {
            return yaml.load(new FileInputStream(cf.toFile()));
        } catch (FileNotFoundException e) {
            //e.printStackTrace();
        }
        return null;
    }

当然,也可以定义一个实体类

然后是写入,直接调用yaml对象的一个dump方法,他是可以把一个map写入为yaml格式文件的

    //我这个方法就是修改上面那个yaml文件的 build下面的某些字段的.
    public void updateBuild(Path cf, Map<String, String> map) {
        String secn = "build";
        try {
            DumperOptions dumperOptions = new DumperOptions();
            dumperOptions.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
            dumperOptions.setDefaultScalarStyle(DumperOpti
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值