一:按文件行数拆分 Java代码 1. package com.yesky.apachelog.util.file; 2. 3. import java.io.BufferedReader; 4. import java.io.BufferedWriter; 5. import java.io.File; 6. import java.io.FileNotFoundException; 7. import java.io.FileReader; 8. import java.io.FileWriter; 9. import java.io.IOException; 10.import java.util.ArrayList; 11.import java.util.Iterator; 12.import java.util.List; 13.import java.util.StringTokenizer; 14. 15.import com.yesky.apachelog.util.regex.ApacheRegexString; 16. 17./** 18. * 按行读取文件,并按行数对文件进行拆分 19. */ 20.public class SeparatorByLine { 21. List FilePathArr = new ArrayList(); 22. String FileName = null;// 原文件名 23. long FileSize = 0;// 原文件的大小 24. 25. public SeparatorByLine() { 26. } 27. 28. /** 29. * 30. * @param fileAndPath 31. * 原文件名及路径 32. */ 33. private void getFileAttribute(String fileAndPath)// 取得原文件的属性 34. { 35. File file = new File(fileAndPath); 36. FileName = file.getName(); 37. FileSize = file.length(); 38. } 39. 40. /** 41. * 42. * @param fileAndPath 43. * 原文件及完整路径 44. * @param currentBlock 45. * 当前块的序号 46. * @return 现在拆分后块的文件名 47. */ 48. private String generateSeparatorFileName(String fileAndPath, 49. int currentBlock)// 生成折分后的文件名,以便于将来合并 50. { 51. return fileAndPath + ".part" + currentBlock; 52. } 53. 54. /** 55. * 按行写文件 56. * 57. * @param fileSeparateName:拆分的文件名及路径 58. * @param tempLine:一行的内容 59. * @return 60. */ 61. private boolean writeFileByLine(String fileSeparateName, 62. List tempList)// 往硬盘写文件 63. { 64. BufferedWriter writer = null; 65. try { 66. writer = new BufferedWriter(new FileWriter(fileSeparateName, true), 10 * 1024 * 1024); 67. Iterator it = tempList.iterator(); 68....