哈哈
来源:互联网 发布:淘宝在线客服人工在哪 编辑:程序博客网 时间:2024/05/16 08:35
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
01.import java.io.File; 02.import java.io.IOException; 03.import org.junit.Test; 04. 05.public class MainClass { 06. /** 07. * 需求:1>.将一个大文件按大小切割成多个小文件,分割后,删除原文件 2>.将多个被切割后的碎片文件合并成一个文件,合并后删除原来的碎片文件 08. * 思路分析: 09. * 一、切割文件 10. * 1.>根据文件路径和文件名获取到该文件 11. * 2.>切割文件就是将一个文件通过输出流写入到多个文件中,所以要用到一个文件输入流:FileInputStream进行读入内存的操作和 12. * 多个文件输出流:FileOutputStream类进行写的操作 13. * 3.>定义缓冲区,进行读取,每读满一个碎片文件进行一次文件流的关闭,关闭后继续写下一个文件 14. * 4.>碎片文件的名称按照数字命名,第一个文件命名为1.part,第二个命名为2.part 15. * 5.>将文件名称和文件的个数写入到一个properties文件中去方便下次合并操作 16. * 17. * 二、合并文件 18. * 1.>根据指定的碎片文件的目录,读取properties配置文件 19. * 2.>根据properties配置文件,获取碎片文件的数量 20. * 3.>获取所有碎片文件,并添加到List集合中 21. * 4.>将List集合利用集合工具类Collections中的方法enumeration将集合中的多个流转化为序列流 22. * 5.>将序列流中的数据写入到指定的文件中去,写完后删掉所有碎片文件 23. * 24. * 三、说明 25. * 本程序支持大文件切割 26. * 如果正使用的话,还需要测试多线程切割和合并 27. * 第二个是异常的处理,这个要根据具体需要来处理了 28. */ 29. 30. //测试:将E:\split下的1.JPG进行切割 31. @Test 32. public void fileSplit(){ 33. //需要切割的文件 34. File file = new File("E:\\CrossFire_OBV212_Full.exe"); 35. //切割后的路径 36. File splitedDir = new File("E:\\split"); 37. SplitFile.fileSplit(file,splitedDir); 38. } 39. 40. //测试:将E:\split下多个碎片文件进行合并,合并后文件存储到指定目录下 41. @Test 42. public void fileMerge() { 43. //要合并的的碎片文件的目录 44. File file = new File("E:\\split"); 45. //合并后文件存放的目录 46. File fileMerged = new File("E:\\merge"); 47. try { 48. MergeFile.fileMerge(file, fileMerged); 49. } catch (IOException e) { 50. e.printStackTrace(); 51. } 52. } 53. 54.}
详细请查看:http://edu.csdn.net