JAVA 生成多个TXT文件并为每个文件循环写入不同内容

  在一次测试中需要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<String> namelist;

namelist=getfilelistname();

for (int j = 0; j < namelist.size(); j++) {
String name=namelist.get(j);
File file=new File(name);
file.createNewFile();
List<String> strlist=getWriteStrlist(j);
writesome(file,strlist);
System.out.println(name);
}

}

public static List<String> getfilelistname(){ //生成file name list
List<String> filelistname;
filelistname=new ArrayList<String>();
String filename;
for (int i = 1; i <=800; i++) {
filename=fname+i+"_T"+"."+ename;//因为文件名要求必须_T 结尾,所以在这里单独加上结尾
filelistname.add(filename);
}
return filelistname;
}

public static List<String> getWriteStrlist(int j){ //为每个file 生成不同的 content
List<String> writelistname;
writelistname=new ArrayList<String>();
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<String> 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();
}
}
}

 

posted @ 2021-03-15 11:54  bad777  阅读(912)  评论(0)    收藏  举报