JYaml——>Yaml的Java实现
时间:2019-09-15
本文章向大家介绍JYaml——>Yaml的Java实现,主要包括JYaml——>Yaml的Java实现使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
JYaml——>Yaml的Java实现
JYaml支持的数据类型:
- 原始数据类型和封装类(int,java.lang.Integer)
- JavaBean兼容对象(结构支持)
- collection(sequence支持)
- List
- Set
- List
- Map(map支持)
- Arrays(sequence支持)
- BigInteger和BigDecimal
- Date
JYaml实例:
将Java实体类写入yaml文件
//创建实体类
package com.richfit.example;
import java.util.List;
public class General {
private String name;
private String address;
private List<String> family;
//省略getter和setter
}
package com.richfit.example;
import org.ho.yaml.Yaml;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
public class demo {
//为实体类赋值
public static General set(){
General general=new General();
general.setName("许褚");
general.setAddress("安徽亳州");
List<String> family=new ArrayList<String>();
family.add("父亲");
family.add("母亲");
general.setFamily(family);
return general;
}
//将实体类直接写入yaml文件
public static void main(String[] args) {
File dumpfile = new File("E:\\workspace_java\\JYaml\\src\\com\\richfit\\example\\general_dump.yaml");
General general=set();
try {
Yaml.dump(general, dumpfile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
效果如下:
--- !com.richfit.example.General
address: 安徽亳州
family:
- 父亲
- 母亲
name: 许褚
将yaml文件load到pojo对象
package com.richfit.example;
import org.ho.yaml.Yaml;
import java.io.File;
import java.io.FileNotFoundException;
public class Load {
public static void main(String[] args) {
General general= new General();
try {
general = (General) Yaml.load(new File("E:\\workspace_java\\JYaml\\src\\com\\richfit\\example\\general_dump.yaml"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println(general.getName()+" "+general.getAddress()+" "+general.getFamily());
}
}
注意:
JYaml来自如下依赖:
<!-- https://mvnrepository.com/artifact/org.jyaml/jyaml -->
<dependency>
<groupId>org.jyaml</groupId>
<artifactId>jyaml</artifactId>
<version>1.3</version>
</dependency>
可能会出现发自动导入依赖的jar包,可以下载jar包自行导入。
流处理
package com.richfit.example;
import org.ho.yaml.Yaml;
import org.ho.yaml.YamlEncoder;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class Flow {
public static void main(String[] args) {
File dumpfile=new File("E:\\workspace_java\\JYaml\\src\\com\\richfit\\example\\general_dump.yaml");
File dumpfile1=new File("E:\\workspace_java\\JYaml\\src\\com\\richfit\\example\\general1_dump.yaml");
try {
General general=(General) Yaml.loadType(dumpfile,General.class);
YamlEncoder encoder=new YamlEncoder(new FileOutputStream(dumpfile1));
for (int i=0;i<3;i++){
general.setName(general.getName()+i);
encoder.writeObject(general);
encoder.flush();
}
encoder.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
mongodb->pojo->yaml
public void read1(String name) {
Query query = new Query(Criteria.where("name").is(name));//条件查询
List<Book> books = this.mongoTemplate.find(query, Book.class);
File dumpfile = new File("E:\\workspace_java\\JYaml\\src\\main\\java\\com\\richfit\\modules\\mongo\\test\\book.yaml");
try {
for (Book book : books) {
Yaml.dump(book, dumpfile);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
原文地址:https://www.cnblogs.com/adderhuang/p/11524975.html
- python 安装spark_Spark环境搭建 (Python)
- MongoDB触发oom-killer的简单处理(一)(r7笔记第54天)
- int与integer的区别
- java 自动装箱与拆箱
- python读取文件——python读取和保存mat文件
- python 利用递归实现全排列
- java中 == 与 equal 的区别
- python基础知识——字符串
- python 实现数据降维推荐系统(附Python源码)
- MYSQL数据导出与导入,secure_file_priv参数设置
- numpy 参数(一) —— np.linalg
- 关于查看dba_data_files的一个小问题(r7笔记第72天)
- 一则备库CPU报警的思考(r7笔记第69天)
- Java设计模式-观察者模式
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Vue监听文本框实时输入限制输入长度
- 30 分钟轻松搞定正则表达式基础
- Vant引入CDN实现图片懒加载
- Js时间戳倒计时天时分秒
- 微信小程序引用we-cropper裁切图片
- NodeJs获取get/post传值
- Mybatis源码本地化构建Demo
- NodeJs封装静态web服务器、路由、读取文件获取响应类型
- NodeJs使用ejs模板引擎实现后端渲染
- 如何优雅地本地化构建Mybatis源码
- Vue监听返回键关闭弹出层不返回页面
- Css添加div点击态
- Mybatis源码笔记之浅析ParameterHandler
- SpringBoot总结之浅析自动化配置原理
- Vue用keep-alive实现页面缓存