当前位置 : 主页 > 编程语言 > java >

properties转换yml格式

来源:互联网 收集:自由互联 发布时间:2021-06-28
springBoot 的配置文件如果用properties会有中文乱码的问题,改成yml可以解决。该工具应运而生。 import com.xiaoleilu.hutool.io.FileUtil;import org.junit.jupiter.api.Test;import org.springframework.util.StringUtil
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
           
            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"; } }
             
            
           
          
         
        
       
      
     
    
   
  
 
网友评论