加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

JYaml——>Yaml的Java实现

发布时间:2020-12-15 07:45:06 所属栏目:Java 来源:网络整理
导读:JYaml——Yaml的Java实现 JYaml支持的数据类型: 原始数据类型和封装类(int,java.lang.Integer) JavaBean兼容对象(结构支持) collection(sequence支持) List Set Map(map支持) Arrays(sequence支持) BigInteger和BigDecimal Date JYaml实例: 将Java

JYaml——>Yaml的Java实现

JYaml支持的数据类型:

  • 原始数据类型和封装类(int,java.lang.Integer)
  • JavaBean兼容对象(结构支持)
  • collection(sequence支持)
    • List
    • Set
  • 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_javaJYamlsrccomrichfitexamplegeneral_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_javaJYamlsrccomrichfitexamplegeneral_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_javaJYamlsrccomrichfitexamplegeneral_dump.yaml");
        File dumpfile1=new File("E:workspace_javaJYamlsrccomrichfitexamplegeneral1_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_javaJYamlsrcmainjavacomrichfitmodulesmongotestbook.yaml");
        try {
            for (Book book : books) {
                Yaml.dump(book,dumpfile);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读