SplitFileDemo(分割)类

package Split;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;public class SplitFileDemo {private static final int PART_SIZE = 1048576;/*** 将文件切成1m大小文件碎片。* *  */public static void main(String[] args) throws IOException {File file = new File("F:\\等一分钟.avi");File dir = new File("F:\\splitPart1");splitFile(file,dir);}public static void splitFile(File file, File dir) throws IOException {FileInputStream fis = new FileInputStream(file);if(!dir.exists())dir.mkdirs();FileOutputStream fos = null;byte []buf = new byte[PART_SIZE];int len = 0;int count = 1;while((len = fis.read(buf)) != -1){fos = new FileOutputStream(new File(dir,(count++)+".myPart"));fos.write(buf, 0, len);   fos.close();}FileWriter fw = new FileWriter(new File(dir,"fileInfo.properties"));Properties pro = new Properties();pro.setProperty("partCount", count+"");pro.setProperty("fileName", file.getName());pro.store(fw, "fileInfo");fw.close();fis.close();}}

=====================================================================================================================================

mergeFileDemo(合并类)

package merge;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Properties;public class mergeFileDemo {/*** 文件合并程序。* @param args* @throws IOException */public static void main(String[] args) throws IOException {File dir = new File("F:\\splitPart1");mergeFile(dir);}public static void mergeFile(File dir) throws IOException {File[] properties_file = dir.listFiles(new Suffix("properties")); if(properties_file.length != 1)throw new RuntimeException("配置文件不存在 或 不唯一");Properties pro = new Properties();pro.load(new FileReader(properties_file[0]));int count = Integer.parseInt(pro.getProperty("partCount"));String file_name = pro.getProperty("fileName");File[] myPart = dir.listFiles(new Suffix(".myPart"));if(myPart.length != count-1)throw new RuntimeException("碎片文件数目不正确! 应为 "+(count-1)+" 个");ArrayList<InputStream> al = new ArrayList<InputStream>();FileInputStream fis = null;for(int i = 1; i<count ;i++){fis = new FileInputStream(new File(dir,i+".myPart"));al.add(fis);}//创建枚举变量 来存取集合中的读入流。Enumeration<InputStream> en = Collections.enumeration(al);//将枚举变量中的读取流,进行逻辑串联。SequenceInputStream sis = new SequenceInputStream(en);FileOutputStream fos = new FileOutputStream(new File(dir,file_name));byte []buf = new byte[1024];int len = 0;while((len = sis.read(buf))!= -1){fos.write(buf, 0, len);fos.flush();}fos.close();sis.close();}}

===========================================================================================================================================================================

过滤器类

package merge;import java.io.File;
import java.io.FilenameFilter;public class Suffix implements FilenameFilter {   private String suffix;public Suffix(String suffix) {super();this.suffix = suffix;}public boolean accept(File dir, String name) {return name.endsWith(suffix);}}

今天写了一个含配置文件的 文件分割 及 合并 的java程序。相关推荐

  1. 初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助...

    初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助,如果有bug或者更好的优化方案,也请批评与指正,谢谢,代码如下: 1 var fs = require( ...

  2. git 下如何把另外一个分支的某个文件改动merge 合并到这个分支,而不是把整个分支merge过来

    git 下如何把另外一个分支的某个文件改动merge 合并到这个分支,而不是把整个分支merge过来 假设在分支A上改动了一个文件 f ,想把 f 合并到 B上,而不是把整个 A merge  到 B ...

  3. submlime text写java_在Sublime Text 3中配置编译和运行Java程序

    1.设置java的PATH环境变量 2.创建批处理或Shell脚本文件 要想编译运行Java程序,需要创建一个批处理或者Shell脚本 Windows: runJava.bat: @echo off ...

  4. 使用python实现大文件分割与合并

    在平常的生活中,我们会遇到下面这样的情况: 你下载了一个比较大型的游戏(假设有10G),现在想跟你的同学一起玩,你需要把这个游戏拷贝给他. 然后现在有一个问题是文件太大(我们不考虑你有移动硬盘什么的情 ...

  5. c语言文件分割与合并程序详解,如何实现将一个文件分割成多个小文件

    你也许会遇到到这样一个问题?当你有一个较大的软件,而无法用一张软盘将其全部拷下时,你也许会想到该将它分解开,分盘拷回去后,再将它们合并起来.现在的这种分割工具很多,你想自己动手做一个适合自己的分割工具 ...

  6. c#文件分割与合并 part 1 (转自互联网)

    这是一篇简单介绍了使用c#来进行文件的合并和分割,我在我的项目中,需要使用到这个模块的功能,所以自己实践之后,发于此,以作备份: 首先,我们先来做文件分割的部分,我们新建了个winform项目,项目设 ...

  7. 超级文件分割《合并》机(分割大文件)

    需求:现在文件的大小越来越大,很多移动设备无法一次把文件一次全部拷贝完全,这种情况就需要把文件分割小点,分几次传送,然后,合并起来,这样就实现了大文件的拷贝功能 介绍:我的这个用的是吧文件分割成1M大 ...

  8. Linux:split 文件分割和合并

    一.简介 Linux服务器普通的文件上传下载一般用 sz rz 就可以满足要求了,但是遇到大文件(超过4G)时就不好使了. 这是就可以通过将大文件分割为小文件传输,之后再进行文件合并即可. 二.用法 ...

  9. RandomAccessFile实现文件分割、合并

    RandomAccessFile可使用的操作模式: "rwd"模式可用于减少执行的"I/O"操作数量.使用"rwd"仅要求更新要写入存储的文 ...

最新文章

  1. 注册表收藏夹任你玩(4招)
  2. 3559A sdk卡
  3. 使用Excel 通过 ODBC 连接到 MySQL 数据库
  4. java删除页面数据不刷新_Ajax请求数据与删除数据后刷新页面
  5. android8 通知呼吸灯_android学习笔记----解决兼容8.0以上和8.0之前版本通知栏显示、振动、LED呼吸灯闪烁问题(真机验证)...
  6. CF183C:Diverse Permutation(构造)
  7. git 常用命令(含删除文件)
  8. 1014. 福尔摩斯的约会 (20)-PAT乙级真题
  9. 贝叶斯分类与贝叶斯网络
  10. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八) MiniGUI 和其他嵌入式 Linux 上的图形及图形用户界面系统...
  11. 企业如何从0到1搭建BI系统
  12. 神经网络的过拟合是什么,神经网络过拟合的表现
  13. 支付宝和微信支付用户付款码条码规则
  14. 怎么注册一个电子邮件账号?电子邮件地址怎么写?
  15. Nvidia GPU 最新计算能力表(CUDA Compute Capability)
  16. upyun java_又拍云Java SDK使用
  17. limt mysql操作
  18. H5实现调用本地摄像头实现实时视频以及拍照功能
  19. Clipboard -- 剪贴板操作
  20. 实践数据湖iceberg 第三十四课 基于数据湖icerberg的流批一体架构-流架构测试

热门文章

  1. 诗与远方:无题(七十六)
  2. Struts2中使用OGNL表达式语言访问静态方法和静态属性以及我遇到的问题和解决方法
  3. 安卓开发之Toast(吐司)应用
  4. c语言常用算法分析 微盘,C语言常用算法归纳.pdf
  5. 用python写石头剪刀布_Python实现简单石头剪刀布游戏
  6. 防止误删的神器-ECS实例删除保护
  7. nodejs+mongodb+vue前后台配置ueditor
  8. SpringMVC+Json构建基于Restful风格的应用
  9. maven 一个简单项目 —— maven权威指南学习笔记(三)
  10. SpringMVC源码阅读(一)