在一次测试中需要800个文件,每个文件需要500条记录,一共测试40W条记录,每条记录呢只有一个不同的地方,手动就太浪费时间,就想着能不能用Java 来完成这个事情,在网上找了几个版本都没有完全达到要求,只有自己稍微修改一下了,最后还是达到要求。想着在这里留个记录,方便使用。具体代码如下:
package test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class test2 {
static String fname;
static String ename;
static String writestring;
static String writestr="02|854|TEST|20210315NUM00003";//文件内容
static String writestr2="1|TEST|FILE||CONSENT01";//文件内容
public static void main(String[] args) throws IOException {
ename="txt";
fname="20210315_TEST001_NUM";
List namelist;
namelist=getfilelistname();
for (int j = 0; j < namelist.size(); j++) {
String name=namelist.get(j);
File file=new File(name);
file.createNewFile();
List strlist=getWriteStrlist(j);
writesome(file,strlist);
System.out.println(name);
}
}
public static List getfilelistname(){ //生成file name list
List filelistname;
filelistname=new ArrayList();
String filename;
for (int i = 1; i <=800; i++) {
filename=fname+i+"_T"+"."+ename;//因为文件名要求必须_T 结尾,所以在这里单独加上结尾
filelistname.add(filename);
}
return filelistname;
}
public static List getWriteStrlist(int j){ //为每个file 生成不同的 content
List writelistname;
writelistname=new ArrayList();
String writeStr;
for (int i = 1; i <=502; i++) {
if(i==1){
writeStr="01|20210315|TEST"+"\r\n"; //第一行内容
}else if(i==502){
writeStr="03|500|"; //最后一行内容
}
else{
writeStr=writestr+(j+1)+(i-1)+writestr2+"\r\n";
}
writelistname.add(writeStr);
}
return writelistname;
}
public static void writesome(File file,List strlist){
try {
FileWriter fileWriter=new FileWriter(file,true);//循环写入内容
for (int i = 0; i < strlist.size(); i++) {
String str=strlist.get(i);
fileWriter.write(str);
}
fileWriter.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
标签:文件,JAVA,String,java,List,static,file,import,TXT
来源: https://www.cnblogs.com/ab777/p/14536778.html