0
点赞
收藏
分享

微信扫一扫

本地读取文件按驼峰命名法输出

RIOChing 2022-04-14 阅读 42
java
package com.jeesite.modules.szutil;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;


public class ReadAndWriteFile {

	public static void main(String[] args) throws Exception {
		
		 //读文件
        List<String> strings = readFile("E:/111/2018/a.txt");
        System.out.println("读取文件的内容:" + strings);
        //写文件
        writeFile(strings, "E:/111/2018/b.txt");//数据库字段相对应
	}
	
	/**
     * 按行读取
     * @param pathName 文件路径
     * @return 行结果
     * 格式:
     * 子课题名称:sonProjectName
     */
    public static List<String> readFile(String pathName) throws IOException {
    	System.out.println("开始读取文件");
        List<String> strings = new ArrayList<>();
        File file = new File(pathName);
        InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(file));
        BufferedReader bf = new BufferedReader(inputStreamReader);
        String str;
        while ((str = bf.readLine()) != null) {
            strings.add(str);
        }
        //关闭流
        bf.close();
        inputStreamReader.close();
        return strings;
    }
  
    /**
     * 写入文件
     * @param strings 内容
     * @param pathName 生成文件路径
     * 按照下面格式输出
     * 输入:实用性:practical
     * 输出:@Column(name="", attrName="", label=""),
     */
    public static void writeFile(List<String> strings, String pathName) throws IOException {
    	System.out.println("开始写入文件");
        FileWriter fileWriter = new FileWriter(new File(pathName));
        BufferedWriter bw = new BufferedWriter(fileWriter);
        for (String str : strings){
        String[] list = str.split(":");
        bw.write("@Column(name=\""+camelToUnderline(list[1])+"\", attrName=\""+list[1]+"\", label=\""+list[0]+"\")," + "\t\n");
        }
        //关闭流
        bw.close();
        fileWriter.close();
    }
    
    
    /**
     * 写入文件--sql
     * @param strings 内容
     * @param pathName 生成文件路径
     * 按照下面格式输出
     * 输入:实用性:practical
     * 输出:private String sbdwbm;	//申报单位编码
     */
    public static void writeFile2(List<String> strings, String pathName) throws IOException {
    	System.out.println("开始写入文件");
        FileWriter fileWriter = new FileWriter(new File(pathName));
        BufferedWriter bw = new BufferedWriter(fileWriter);
        int len = strings.size()-1;
        bw.write("ALTER TABLE `kjcx`.`kjcx_change` " + "\t\n");
        for (int i = 0 ; i<strings.size() ; i++){
        String[] list = strings.get(i).split(":");
        if(i == len){
        	bw.write("ADD COLUMN `"+camelToUnderline(list[1])+"` varchar(255) COMMENT '"+list[0]+"';" + "\t\n");
        }else{
        	bw.write("ADD COLUMN `"+camelToUnderline(list[1])+"` varchar(255) COMMENT '"+list[0]+"'," + "\t\n");
        }
        
        }
        //关闭流
        bw.close();
        fileWriter.close();
    }


    /**
     * 驼峰格式字符串转换为下划线格式字符串
     * 
     * @param param
     * @return
     */
    public static String camelToUnderline(String param) {
        if (param == null || "".equals(param.trim())) {
            return "";
        }
        int len = param.length();
        StringBuilder sb = new StringBuilder(len);
        for (int i = 0; i < len; i++) {
            char c = param.charAt(i);
            if (Character.isUpperCase(c)) {
                sb.append("_");
                sb.append(Character.toLowerCase(c));
            } else {
                sb.append(c);
            }
        }
        return sb.toString();
    }

    /**
     * 下划线格式字符串转换为驼峰格式字符串
     * 
     * @param param
     * @return
     */
    public static String underlineToCamel(String param) {
        if (param == null || "".equals(param.trim())) {
            return "";
        }
        int len = param.length();
        StringBuilder sb = new StringBuilder(len);
        for (int i = 0; i < len; i++) {
            char c = param.charAt(i);
            if (c == '_') {
                if (++i < len) {
                    sb.append(Character.toUpperCase(param.charAt(i)));
                }
            } else {
                sb.append(c);
            }
        }
        return sb.toString();
    }
	
}
举报

相关推荐

0 条评论