【Java工具类】(21)—Freemarker工具类

Java工具类(21)—Freemarker工具类

package com.awifi.capacity.docker.manager.utils;

import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import freemarker.cache.StringTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

import javax.xml.parsers.ParserConfigurationException;
import java.io.*;
import java.util.*;

import static com.awifi.capacity.docker.manager.utils.FileUtil.getFileContent;


/**
* @Author zhangxin
* @Date 2021/11/18 10:41
* @Version 1.0
*/
@Data
public class FreemarkerUtil {


   private static String defaultCharacter = "UTF-8";
   private static Configuration cfg;


   static {
       cfg = new Configuration();
       cfg.setDefaultEncoding(defaultCharacter);
       cfg.setTagSyntax(Configuration.AUTO_DETECT_TAG_SYNTAX);
   }

   public static String processTemplate(String myTemplate, Map<String, Object> map){
       String result = null;
       String name = "template";

       try {
           StringTemplateLoader stringTemplateLoader = new StringTemplateLoader();
           stringTemplateLoader.putTemplate(name, myTemplate);
           cfg.setTemplateLoader(stringTemplateLoader);
           Template template = cfg.getTemplate(name, defaultCharacter);
           StringWriter out = new StringWriter();
           template.process(map, out);
           out.flush();
           result = out.toString();
           out.close();
       } catch (Exception e){
           e.printStackTrace();
       }
       return result;
   }

   /**
    * 将List<String>集合 转化为String
    * 如{"aaa","bbb"} To 'aaa','bbb'
    */
   public static String convertListToString(List<String> strlist){
       StringBuffer sb = new StringBuffer();
       String result=null;
       if(CollectionUtils.isNotEmpty(strlist)){
           for (int i=0;i<strlist.size();i++) {
               if(i==0){
                   sb.append("'").append(strlist.get(i)).append("'");
               }else{
                   sb.append(",").append("'").append(strlist.get(i)).append("'");
               }
           }
           result="["+sb.toString()+"]";
       }
       return result;

   }

   /**
    * 生成文件
    * @param pathOld 生成文件的路径
    * @param str  传入的字符串
    */
   public static void createFile(String pathOld, String str) {
       File file = new File(pathOld);  //创建文件对象
       try {
           if (!file.exists()) {               //如果文件不存在则新建文件
               file.createNewFile();
           }
           FileOutputStream output = new FileOutputStream(file);
           byte[] bytes = str.getBytes();
           output.write(bytes);                //将数组的信息写入文件中
           output.close();
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }


   }




   public static void main(String[] args) {
       String path = "D:\\project\\project-manager\\rdp-pm-1.0.6\\rdp-project-manager-products\\rdp-pm-products-provider\\src\\main\\resources\\jenkinsdmavenSetting.ftl";
      String pathold = "D:/setting.xml";
       String pathnew = "/opt/maven/apache-maven-3.5.4";

       String creds = String.format("%s:%s", pathold, pathnew);
       System.out.println(creds);

       ArrayList<Object> list = new ArrayList<>();
       String fileContent= getFileContent(path);
       Map<String,Object> map= new HashMap<String, Object>();
       map.put("repositoryId", "aWifi-rep-test1");
       map.put("username", "zhangxin");
       map.put("password", "123456");
       Map<String,Object> map1= new HashMap<String, Object>();
       map1.put("repositoryId", "aWifi-rep-test2");
       map1.put("username", "zhangxin");
       map1.put("password", "123456");
       list.add(map);
       list.add(map1);
       HashMap<String, Object> objectObjectHashMap = new HashMap<>();
       objectObjectHashMap.put("list",list);
//        map.put("repositoryName", "repositroy-test2");
//        map.put("repositoryUrl", "/zhangxin/test/repositoryUrl");
       System.out.println("源文件------"+fileContent);
       String result = processTemplate(fileContent, objectObjectHashMap);
       createFile(pathold,result);
       System.out.println("result----"+result);

//        SftpUtil sftpUtil = new SftpUtil("root", "5FL1dpW7", "192.168.211.118", 22);
//        sftpUtil.login();
//        //sftpUtil.createDir("/root/trunk/remote10/a/b/c/c/d");
//        sftpUtil.upload(pathnew, pathold);


   }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值