springBoot 的配置文件如果用properties会有中文乱码的问题,改成yml可以解决。该工具应运而生。

import com.xiaoleilu.hutool.io.FileUtil;

import org.junit.jupiter.api.Test;

import org.springframework.util.StringUtils;

import java.util.*;

/**

* Created by DimonHo on 2017/11/3.

*/

public class AnalyzerFiler {

/**

* properties转yml

* @param propertiesPath

* @param propertiesCharset

* @param ymlCharset

* @return

*/

public String propertiesToYml(String propertiesPath,String propertiesCharset,String ymlCharset){

List lines = FileUtil.readLines(propertiesPath, propertiesCharset);

String path = FileUtil.getAbsolutePath(propertiesPath);

//使用treemap排好序

Map sourceMap = new TreeMap();

for (String line:lines){

if (!StringUtils.isEmpty(line) && !line.startsWith("#")){

String key = line.substring(0,line.indexOf("="));

String value = line.substring(line.indexOf("=")+1);

sourceMap.put(key,value);

}

}

Iterator it = sourceMap.keySet().iterator();

//保存yml的行内容

List ymlLines = new ArrayList();

//Tab用两个空格格式化

String tab = " ";

//yml文档树

Map> treeMap = new TreeMap>();

//父级名称

String parent = "";

//子节点列表

List element = new ArrayList();

while(it.hasNext()){

String key = it.next();

//.拆分key

String[] keys = key.split("\\.");

String prefix = "";

for (int i=0;i

//从第二个节点开始,行前面需要加tab来格式化,并设置它的父节点

if (i>0){

parent+=keys[i-1];

prefix += tab;

}

String line = prefix + keys[i]+ ": ";

if (treeMap.get(parent)==null) treeMap.put(parent,new ArrayList());

if(!treeMap.get(parent).contains(line)){

element = treeMap.get(parent)==null?new ArrayList():treeMap.get(parent);

if (!element.contains(line)){

element.add(line);

treeMap.put(parent,element);

}

if (i==keys.length-1){

ymlLines.add(line+sourceMap.get(key));

parent = "";

}else{

ymlLines.add(line);

}

}

}

}

FileUtil.writeLines(ymlLines,path.replace(".properties",".yml"),ymlCharset);

return "ok";

}

}

yml转换html,properties转换yml格式相关推荐

  1. application.properties转换成application.yml配置Oracle数据库连接时报错

    application.properties转换成application.yml报错Failed to determine a suitable driver class,原因是driver-clas ...

  2. JSON数据格式:以及XML文件格式,YML文件格式,properties文件格式

    JSON数据格式:以及XML文件格式,YML文件格式,properties文件格式 数据格式: json数据格式:属于轻量级数据格式,是javascript的一种描述数据的格式.具有易于解析,语法简单 ...

  3. SpringBoot的properties和yml两种配置方式, 配置注入参数, 以及配置文件读取失效的问题

    SpringBoot支持两种配置方式,一种是properties文件,一种是yml 首先在pom文件中添加依赖: <dependency><groupId>org.spring ...

  4. Spring Boot properties和yml

    概念介绍 properties 和 yml 都是 Spring Boot 支持的两种配置文件,它们可以看作是 Spring Boot 在不同时期的两款"产品".在 Spring B ...

  5. 进行将多张CAD图纸转换成高清WMF格式的操作是什么?

    进行将多张CAD图纸转换成高清WMF格式的操作是什么?WMF格式是图片格式中的一种,为了方便将CAD图纸文件进行查看我们会需要将其进行格式间的转换操作,将其进行转换成图片格式中的WMF格式就是其中的一 ...

  6. c++ 解析从浏览器端传过来的图像base64编码,并转换成opencv识别的格式

    from: c++ 解析从浏览器端传过来的图像base64编码,并转换成opencv识别的格式 #include <cstdint> #include <fstream> #i ...

  7. kux格式怎么转换成mp3_把MP3格式的音频转换成WAV格式

    有时候工作中我们在处理音频的过程中,需要转换音频的格式,以便于更好的使用.例如,可能会要求把MP3格式的音频转换成其他的音频格式.这时候如何解决是一个问题.今天我就和大家介绍好用的音频转换器,可以快速 ...

  8. bootstrap.yml与application.properties区别?

    1. bootstrap.yml先于application.properties被加载. 2. bootstrap.yml被Spring ApplicationContext的父类加载,这个类先于加载 ...

  9. matlab 数值格式转换,Matlab字符串转换及数值格式转换

    Matlab字符串转换及数值格式转换 字符串转换函数 abs 字符串到ASCII转换 dec2hex 十进制数到十六进制字符串转换 fprintf 把格式化的文本写到文件中或显示屏上 hex2dec ...

  10. 上传 mp4 格式判断_视频如何转换成通用的MP4格式?按下这个键,10秒就能搞定...

    我们在网上下载视频的时候,有很多的视频都是无法播放的,或者是需要特定的播放器才可以播放.其实,只要把这些视频的格式转换成通用的MP4格式即可.如果你还不知道怎么转换视频格式,下面就教大家两个小方法,百 ...

最新文章

  1. 数据结构与算法-学习笔记(13)
  2. DDoS攻击的大量增加给企业带来了新的威胁——Vecloud
  3. AI:2020年6月24日北京智源大会演讲分享之机器学习前沿青年科学家专题论坛——10:40-11:10金驰《Near-Optimal Reinforcement Learning with Sel》
  4. Redis中的发布与订阅的概念与以命令行的方式实现发布订阅举例
  5. 人工智能(1)---从0开始搭建产品经理的AI认知体系
  6. POJ 3254 Corn Fields [DP]
  7. 模型调参(AutoML)— optuna
  8. 多元线性回归:客户价值预测
  9. 我的世界java版海岛种子_我的世界海岛种子大全(附:大型海岛村庄种子)
  10. 【搜索/tarjan找环】zznu-简单环路
  11. 计算机弹出虚拟U盘,怎么设置vmware虚拟机U盘启动
  12. HTML中的长度单位px、em、rem
  13. 华硕Z91515C笔记本使用随记
  14. 如何解决微信端不能直接跳转浏览器
  15. 来自全国各地的65位高校教师接龙晒工资,供参考
  16. (转载)关于C#的fixed
  17. 高鸿业西方经济学重点归纳总结
  18. vue 数字滚动count-to插件,支持小数(包含vue3,网上整理)
  19. matlab自定义函数拟合写法,[MATLAB基础] 求助:如何确定自定义函数拟合时的参数初值?感谢!...
  20. nginx做代理访问慢,优化方案

热门文章

  1. 如何使用smobiler的listview控件实现个人信息修改
  2. Verilog实现的格雷码与二进制码的互相转换
  3. 互联网晚报 | 06月14日 星期二 | 罗永浩称苹果有些产品明显退步;​旷视首席科学家孙剑博士去世;吉利拟收购魅族...
  4. php个人财务管理,PHP个人理财管理系统的设计与实现
  5. emoji 表情图片解决方法
  6. 计算机系统与itunes不兼容,解决XP系统安装iTunes的要求更改更高版本的不兼容情况...
  7. H5+CSS3面试题
  8. Failed to parse XML
  9. python 爬取生意参谋数据_如何爬取生意参谋数据?是不是违规操作?
  10. 深入理解Java类加载器(ClassLoader)