if (newpath.exists())
deleteAllFile(newpath.getAbsolutePath());// 删除文件下所有
else
newpath.mkdirs(); // 生成filename这个文件夹 把子文件都放入这个文件
// 统计总共行数
long linecount = 0;
// br.mark(65535);//标记流的位置
while ((lineContent = br.readLine()) != null) {
linecount++;
}
// br.reset();//回到标记位
br.close();
br = new BufferedReader(new FileReader(file));
long everyfilereadline = linecount / filenumber;
String filenames[] = new String[filenumber];
// 子文件名字数组
for (int i = 0; i < filenumber; i++) {
subfilename = subfilepath + "/"
+ filename.substring(0, filename.length() - 4) + (i + 1)
+ ".txt";
subfilename = subfilename.replace('\\', '/');
filenames = subfilename;
}
long nowline = 0;
int nowfilenumber = 0;
PrintWriter pw;
pw = new PrintWriter(filenames[0]);// 第一个子文件
System.out.println("\ncreate file :"+filenames[0]);
while ((lineContent = br.readLine()) != null) {
if (nowline == everyfilereadline) {
nowline = 0;// 行数清零
pw.write(sb.toString());
pw.close();
// 生成下一个子文件
sb = new StringBuffer();
nowfilenumber++;// 当前文件数+1
if (nowfilenumber < filenumber) {
System.out.println("create file :"+filenames[nowfilenumber]);
pw = new PrintWriter(filenames[nowfilenumber]);// 由于开始是在上次的基础上加1
}
}
// 注意 分隔符不能在原文中有 否则copy不正确 最好找个外文字符
StringTokenizer st = new StringTokenizer(lineContent, "ほ");
for (int t = 0; st.hasMoreElements(); t++) {
String word = (String) st.nextElement();
sb.append(word);
}
sb.append("\r\n");// 回车并换行 \n是不行的
nowline++;
}
if (pw != null) {
pw.write(sb.toString());// 写入最后一个文件
pw.close();
}
br.close();
long endTime = System.currentTimeMillis();
System.out.println("共用时 :" + convertTime(endTime - startTime));
}
public static String convertTime(Long time) {
long hour = time / 1000 / 60 / 60;
long seconds = time / 1000 % 60;
long minute = time / 1000 / 60 % 60;
long millisecond = time % 1000;