import java.io.*;
?? ?String targetFile = "C:\\tools\\apache-jmeter-3.2-plugins\\bin\\csh\\playGameVar.txt";//源文件目录
?? ?
?? ?String saveDir = "C:\\tools\\apache-jmeter-3.2-plugins\\bin\\csh";//分割后文件目录
?? ?
?? ?String saveFileName = "playGameVar";//分割后文件名开头
?? ?
?? ?String suffix = "txt";//分割后文件格式后缀
?? ?
?? ?long splitSize = 10000;//每个文件记录条数
?? ?
?? ? public static void splitFile(String targetFile, String saveDir , String saveFileName, String suffix,long splitSize) throws Exception {
?? ?
?? ? ? ? ? ?if( !saveDir.endsWith("\\") ){
?? ? ? ? ? ? ? ?saveDir += File.separator;
?? ? ? ? ? ?}
?? ?
?? ? ? ? ? ?File file = new File(targetFile);
?? ? ? ? ? ?if (!file.exists()) {
?? ? ? ? ? ? ? ?throw new Exception("目标路径:[ " + targetFile + " ] 有错误...");
?? ? ? ? ? ?}
?? ?
?? ? ? ? ? ?BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
?? ?
?? ? ? ? ? ?String str = null;
?? ? ? ? ? ?
?? ? ? ? ? ?long len = 0;
?? ?
?? ? ? ? ? ?System.out.println("开始写入......请等待......");
?? ? ? ? ? ?long startTime = System.currentTimeMillis();
?? ? ? ? ??
?? ? ? ? ? ?BufferedWriter writer = null;
?? ? ? ? ? ?while ((str = reader.readLine()) != null) {
?? ? ? ? ? ? ? ?long txtSize = (len / splitSize) + 1;
?? ? ? ? ? ? ? ?String fileName = saveDir + saveFileName + txtSize + "." + suffix;
?? ?
?? ? ? ? ? ? ? ?writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName, true)));
?? ? ? ? ? ? ? ?writer.write(str + System.lineSeparator() );
?? ? ? ? ? ? ? ?writer.flush();
?? ? ? ? ? ? ? ?len ++;
?? ? ? ? ? ?}
?? ? ? ? ? ?writer.close();
?? ? ? ? ? ?reader.close();
?? ?
?? ? ? ? ? ?System.out.println("写入完毕,一共 " + len + " 记录,耗时:" + ( System.currentTimeMillis() - startTime ) / 1000 + " s" );
?? ?}
? ? try {
?? ? ?splitFile(targetFile, saveDir, saveFileName, suffix, splitSize); //调用文件分割方法
?? ?} catch (Exception e) {
?? ? ?e.printStackTrace();
?? ?}
? ??