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();
}
}