import java.io.*;
public class SplitFileUtil {
public static void main(String[] args) {
String targetFile = "C:\\Users\\YY\\Desktop\\《人性的弱点》(全集)-戴尔.卡耐基+著 - 副本.txt";
String saveDir = "C:\\Users\\YY\\Desktop\\《人性的弱点》";
String saveFileName = "人性的弱点";
String suffix = "txt";
long splitSize = 5;
try {
splitFile(targetFile, saveDir, saveFileName, suffix, splitSize);
} catch (Exception e) {
e.printStackTrace();
}
}
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),"gb2312"));
writer.write(str + System.lineSeparator() );
writer.flush();
len ++;
}
writer.close();
reader.close();
System.out.println( "写入完毕,一共 " + len + " 记录,耗时:" + ( System.currentTimeMillis() - startTime ) / 1000 + " s" );
}
}