下载依赖

org.yaml

snakeyaml

1.23

在项目根目录下创建/etc/conifg.yml 配置文件, 输入一条测试数据

test.param: 3

代码测试

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.util.Map;

import org.yaml.snakeyaml.Yaml;

public class yamlTest {

public static void main(String[] args) throws FileNotFoundException {

Map conf = new Yaml().load(new FileInputStream(new File("./etc/config.yml")));

System.out.println(conf.get("test.param")); // test_gp2

System.out.println(conf.getOrDefault("test.param2", "unknown")); // unknown

}

}

打包测试

在jar包同级目录下创建/etc/confog.yml文件

root@ubuntu:~/jars# tree etc/ sparktest_gp-1.0-SNAPSHOT.jar

etc/

└── config.yml

sparktest_gp-1.0-SNAPSHOT.jar

运行jar包

root@ubuntu:~/jars# java -cp sparktest_gp-1.0-SNAPSHOT.jar main.yamlTest

2

unknown

修改/etc/config.yml文件

test.param: 3

重新运行jar包, 参数改变, 可以在jar包外部修改配置

root@ubuntu:~/jars# java -cp sparktest_gp-1.0-SNAPSHOT.jar main.yamlTest

3

unknown

使用单例模式构建读取配置工具类

package main;

import com.ctc.wstx.api.ReaderConfig;

import org.yaml.snakeyaml.Yaml;

import java.io.File;

import java.io.FileInputStream;

import java.util.Map;

public class Config {

private Map conf;

private static Config instance;

private Config() {

try {

conf = new Yaml().load(new FileInputStream(new File("./etc/config.yml")));

} catch (Exception e) {

e.printStackTrace();

}

}

public static Config getInstance() {

if (instance == null) {

synchronized (ReaderConfig.class) {

if (instance == null) {

instance = new Config();

}

}

}

return instance;

}

public String getString(String param) {

return String.valueOf(conf.get(param));

}

public String getString(String param, String defaultValue) {

if (null == conf.get(param)) {

return defaultValue;

}

return String.valueOf(conf.get(param));

}

public Map getConfig() {

return conf;

}

}

调用测试

import java.util.Map;

public class UseConfig {

public static void main(String[] args) {

Map conf = Config.getInstance().getConfig();

System.out.println(conf);

String parma1 = Config.getInstance().getString("test.param");

System.out.println(parma1);

}

}

java yaml_Java 使用snakeyaml解析yaml相关推荐

  1. java snakeyaml_JAVA使用SnakeYAML解析与序列化YAML

    1.概述 本文,我们将学习如何使用SnakeYAML库将 YAML文档转换为Java对象,以及JAVA对象如何序列化为YAML文档. 2.项目设置 要在项目中使用SnakeYAML,需要添加Maven ...

  2. yml java集合_JAVA 使用 SnakeYAML 解析与序列化 YAML

    1.概述 本文,我们将学习如何使用SnakeYAML库将 YAML文档转换为Java对象,以及JAVA对象如何序列化为YAML文档. 2.项目设置 要在项目中使用SnakeYAML,需要添加Maven ...

  3. JAVA使用SnakeYAML解析与序列化YAML

    1.概述 本文,我们将学习如何使用SnakeYAML库将 YAML文档转换为Java对象,以及JAVA对象如何序列化为YAML文档. 2.项目设置 要在项目中使用SnakeYAML,需要添加Maven ...

  4. Java解析yaml文件

    Java解析yaml文件 1. 什么是yaml ? 2. 导入maven依赖 3. yaml 案例文件 4. 示例代码 5. 解析结果 1. 什么是yaml ? 参考下方链接 yaml快速入门 2. ...

  5. java读取yaml配置文件,snakeyaml读取yaml配置文件

    下面上我解析yaml文件的例子: // me.yaml age: 1 name: jiaobuchong params: event: what's up url: http://www.jiaobu ...

  6. Java安全之SnakeYaml反序列化分析

    Java安全之SnakeYaml反序列化分析 0x00 前言 偶然间看到SnakeYaml的资料感觉挺有意思,发现SnakeYaml也存在反序列化利用的问题.借此来分析一波. 0x01 SnakeYa ...

  7. Exception in thread main java.lang.Error: 无法解析的编译问题: 方法 main 不能声明为 static;只能在静态类型或顶级类型中才能声明静态方法

    Exception in thread "main" java.lang.Error: 无法解析的编译问题: 方法 main 不能声明为 static:只能在静态类型或顶级类型中才 ...

  8. 四种Java线程池用法解析

    四种Java线程池用法解析 本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 ...

  9. 如何在Python中解析YAML文件

    如何在Python中解析YAML文件? #1楼 不依赖C标头的最简单,最纯净的方法是PyYaml( 文档 ): #!/usr/bin/env pythonimport yamlwith open(&q ...

  10. 你所需要的java基础篇深入解析大汇总

    java基础篇深入解析大总结 java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规则 java基础(三) 加强型for循环与Iterator java基础(四) java运算顺序 ...

最新文章

  1. FWFT FIFO读操作注意
  2. Python 动态变量名定义与调用
  3. python之美_Python之美[从菜鸟到高手]--生成器之全景分析
  4. Leetcode--55. 跳跃游戏
  5. 划分字母区间c语言,LeetCode(#763):划分字母区间
  6. 简单Matlab的Gui设计——电子琴
  7. 如何搞好公司和员工的关系二:以德服人才能口服心服
  8. R语言排序及筛选函数
  9. 浅谈feature-based 和 fine-tune
  10. cf I - Irrational Division
  11. python中文转化gb2321_使用Python进行中文繁简转换的实现代码
  12. HTTPs SSL OV、DV和EV证书的区别
  13. 计算机控制面板 关机时间,怎么设置电脑的自动关机时间
  14. 深大数据库系统实验3——DATABASE SOFTWARE练习实验
  15. 计算机专业有那些?原来有这么这么多
  16. 汉字转拼音函数 linux,oracle 汉字转拼音
  17. 攻击篇--远程控制(一)生成被控端与主控端
  18. React(一)——快速入门
  19. 如何积累财富[转载] 我觉得挺经典 和大家一起分享一下!
  20. datagrip 查询结果不能修改

热门文章

  1. netperf mips 移植
  2. Flash Builder 4.7 正式版下载、破解
  3. 肖风:分布式网络是区块链机制设计的第一个层次
  4. 为什么Lottie动画无法使用AVVideoCompositionCoreAnimationTool导出
  5. 小工具-悬浮窗LogViewer在android手机上查看数据日志
  6. 【转】GB2312 编码
  7. AutoHotKey完成ass字幕文件字幕偏移时间修改
  8. 【f1c200s/f1c100s】不带中断引脚采用扫描的方式实现通用gpio-keys
  9. 三种Moran's I(空间自相关性) 之我见
  10. charles V4.2.1版本 破解码