`
isiqi
  • 浏览: 16034659 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

java分割大文件和合并小文件实例(转)

阅读更多
  1. importjava.io.BufferedReader;
  2. importjava.io.BufferedWriter;
  3. importjava.io.File;
  4. importjava.io.FileInputStream;
  5. importjava.io.FileOutputStream;
  6. importjava.io.IOException;
  7. importjava.io.InputStream;
  8. importjava.io.InputStreamReader;
  9. importjava.io.OutputStream;
  10. importjava.io.OutputStreamWriter;
  11. /**
  12. *对文件进行分割与合并的工具
  13. *
  14. *@authorAdministrator
  15. */
  16. publicclassCutJoinFile{
  17. privatestaticintMAX_PART=100;//最大分割100分,以免手误引起麻烦
  18. publicstaticvoidmain(String[]args)throwsIOException{
  19. Stringfilname="d:/cvs.rar";
  20. cutFileBin(filname,2*1024*1024);//二进制文件为例
  21. joinFileBin(filname);//二进制文件为例
  22. }
  23. /**
  24. *分割文本文件
  25. *
  26. *@paramfileName文件名
  27. *@paramsize每个分割小文件的尺寸
  28. *@throwsIOException
  29. */
  30. publicstaticvoidcutFileText(StringfileName,intsize)throwsIOException{
  31. BufferedReaderreader=newBufferedReader(newInputStreamReader(newFileInputStream(fileName)));
  32. intindex=fileName.lastIndexOf(".");
  33. Stringext="";
  34. if(index>0){
  35. ext=fileName.substring(index);
  36. fileName=fileName.substring(0,index);
  37. }
  38. intlen;
  39. intcount=1;
  40. char[]cbuf=newchar[size];
  41. while((len=reader.read(cbuf,0,size))!=-1){
  42. BufferedWriterwriter=newBufferedWriter(newOutputStreamWriter(newFileOutputStream(fileName+"_"+count+ext)));
  43. writer.write(cbuf,0,len);
  44. writer.flush();
  45. writer.close();
  46. count++;
  47. if(count>MAX_PART){
  48. break;
  49. }
  50. }
  51. }
  52. /**
  53. *分割二进制文件
  54. *
  55. *@paramfileName文件名
  56. *@paramsize每个分割小文件的尺寸
  57. *@throwsIOException
  58. */
  59. publicstaticvoidcutFileBin(StringfileName,intsize)throwsIOException{
  60. InputStreamis=newFileInputStream(fileName);
  61. intindex=fileName.lastIndexOf(".");
  62. Stringext="";
  63. if(index>0){
  64. ext=fileName.substring(index);
  65. fileName=fileName.substring(0,index);
  66. }
  67. intlen;
  68. intcount=1;
  69. byte[]cbuf=newbyte[size];
  70. while((len=is.read(cbuf,0,size))!=-1){
  71. OutputStreamos=newFileOutputStream(fileName+"_"+count+ext);
  72. os.write(cbuf,0,len);
  73. os.close();
  74. count++;
  75. if(count>MAX_PART){
  76. break;
  77. }
  78. }
  79. }
  80. /**
  81. *合并文本文件
  82. *
  83. *@paramfileName文件名,不包括编号部分
  84. *@throwsIOException
  85. */
  86. publicstaticvoidjoinFileText(StringfileName)throwsIOException{
  87. intindex=fileName.lastIndexOf(".");
  88. Stringext="";
  89. if(index>0){
  90. ext=fileName.substring(index);
  91. fileName=fileName.substring(0,index);
  92. }
  93. BufferedWriterwriter=newBufferedWriter(newOutputStreamWriter(newFileOutputStream(fileName+"_join"+ext)));
  94. intlen;
  95. char[]cbuf=newchar[1024*100];
  96. Filefile;
  97. for(inti=1;i<=Integer.MAX_VALUE;i++){
  98. file=newFile(fileName+"_"+i+ext);
  99. if(!file.exists()){
  100. break;
  101. }
  102. BufferedReaderreader=newBufferedReader(newInputStreamReader(newFileInputStream(file)));
  103. while((len=reader.read(cbuf,0,cbuf.length))!=-1){
  104. writer.write(cbuf,0,len);
  105. writer.flush();
  106. }
  107. reader.close();
  108. }
  109. writer.close();
  110. }
  111. /**
  112. *合并二进制文件
  113. *
  114. *@paramfileName文件名,不包括编号部分
  115. *@throwsIOException
  116. */
  117. publicstaticvoidjoinFileBin(StringfileName)throwsIOException{
  118. intindex=fileName.lastIndexOf(".");
  119. Stringext="";
  120. if(index>0){
  121. ext=fileName.substring(index);
  122. fileName=fileName.substring(0,index);
  123. }
  124. OutputStreamwriter=newFileOutputStream(fileName+"_join"+ext);
  125. intlen;
  126. byte[]cbuf=newbyte[1024*100];
  127. Filefile;
  128. for(inti=1;i<=Integer.MAX_VALUE;i++){
  129. file=newFile(fileName+"_"+i+ext);
  130. if(!file.exists()){
  131. break;
  132. }
  133. InputStreamreader=newFileInputStream(file);
  134. while((len=reader.read(cbuf,0,cbuf.length))!=-1){
  135. writer.write(cbuf,0,len);
  136. writer.flush();
  137. }
  138. reader.close();
  139. }
  140. writer.close();
  141. }
  142. }
分享到:
评论

相关推荐

    java实现大文件分割与合并的实例代码

    java实现大文件分割与合并的实例代码,需要的朋友可以参考一下

    Java实现文件分割和文件合并实例

    文件切割和文件合并这个问题困扰了我有一段时间了(超过一天没做粗来)。 找了好多博客,本来想转载一个来的 结果找不到了。很无奈。 只好自己贴代码上了。 当然我会尽力好好写注释的。 文件切割器: import java.io...

    Java实现多个wav文件合成一个的方法示例

    主要介绍了Java实现多个wav文件合成一个的方法,涉及java文件流读写、编码转换、解析等相关操作技巧,需要的朋友可以参考下

    Java实现文件分割与合并

    主要介绍了Java实现文件分割与合并,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    java源码包---java 源码 大量 实例

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    Java实现大文件的切割与合并操作示例

    主要介绍了Java实现大文件的切割与合并操作,结合实例形式分析了java基于io及util操作大文件按指定个数分割与合并相关操作技巧,需要的朋友可以参考下

    Java将文件分割为多个子文件再将子文件合并成原始文件的示例

    本篇文章主要介绍了Java将文件分割为多个子文件再将子文件合并成原始文件的示例,具有一定的参考价值,有兴趣的可以了解一下。

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    Java 使用IO流实现大文件的分割与合并实例详解

    主要介绍了Java 使用IO流实现大文件的分割与合并实例详解的相关资料,需要的朋友可以参考下

    java 流操作对文件的分割和合并的实例详解

    主要介绍了java 流操作对文件的分割和合并的实例详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下

    java源码包4

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    java源码包3

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    java源码包2

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    基于Java的实例源码-PDF分割与合并源代码.zip

    基于Java的实例源码-PDF分割与合并源代码.zip

    基于Java的实例开发源码-PDF分割与合并源代码.zip

    基于Java的实例开发源码-PDF分割与合并源代码.zip

    Java范例开发大全 (源程序)

     实例127 一个文件变成多个小文件 178  实例128 多个小文件合成一个文件 181  实例129 统计指定文件中的字符个数 183  实例130 对象的序列化与反序列化 185  实例131 同时显示多个文件 187  实例132 生成...

    PDF分割与合并源代码.rar

    PDF分割与合并源代码.rar

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    数据压缩,文件传输 Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧...

Global site tag (gtag.js) - Google Analytics