刚从网上下载了《史记》,但太大了,没办法,手机打开有问题,没办法只能拆分了。
其格式主要是有“●卷”开头,那么只能以“●卷”拆分了。其代码如下:
其格式主要是有“●卷”开头,那么只能以“●卷”拆分了。其代码如下:
public class SpliteFile {
public static void main(String args[]) throws Exception {
String spliteFileNamePre = "C:\\tmp\\史记";
String fileName = "C:\\tmp\\sj.txt";
File file = new File(fileName);
BufferedReader br = new BufferedReader(new FileReader(file));
int count = 0;
StringBuffer sb = new StringBuffer();
String lineContent = "";
while ((lineContent = br.readLine()) != null) {
if (lineContent.startsWith("●卷")) {
if (count == 0) {
count++;
} else {
File outFile = new File(spliteFileNamePre
+ numberFormat(count) + ".txt");
BufferedWriter bw = new BufferedWriter(new FileWriter(
outFile));
bw.write(sb.toString());
bw.flush();
bw.close();
sb.delete(0, sb.length());
count++;
}
}
sb.append("\n");
sb.append(lineContent);
}
File outFile = new File(spliteFileNamePre
+ numberFormat(count) + ".txt");
BufferedWriter bw = new BufferedWriter(new FileWriter(
outFile));
bw.write(sb.toString());
bw.flush();
bw.close();
}
/**
* 格式化拆分后文件的名称(部分)这里格式为3位
* @param nuber
* */
public static String numberFormat(int number) {
StringBuffer sb = new StringBuffer();
String tmp = String.valueOf(number);
int length = tmp.length();
if (length < 3) {
for (int i = 0; i < 3 - length; i++) {
sb.append("0");
}
sb.append(tmp);
return sb.toString();
}
return tmp;
}
}