全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java 实现切割文件和合并文件的功能

java 实现切割文件和合并文件的功能

一、切割文件代码如下:

需求:将一个媒体文件切割成多个碎片(每个碎片的大小为1M),并添加配置说明文件

          1.创建(指定)一个文件夹,用于保存切割出来的碎片
          2.创建源文件对象,并传入一个输入流对象
          3.创建一个缓冲区为1M
          4.创建一个输入流对象并将源文件对象传入,创建一个输出流对象引用
          5.每个缓冲区获取到碎片时,使用输出对应流对象写入到一个新的文件
          6.写相应的信息到配置文件

实现代码:

public class SplitFileTest {
  public static void main(String[] args) throws IOException {
    /**
     * 需求:将一个媒体文件切割成多个碎片(每个碎片的大小为1M),并添加配置说明文件
     * 1.创建(指定)一个文件夹,用于保存切割出来的碎片
     * 2.创建源文件对象,并传入一个输入流对象
     * 3.创建一个缓冲区为1M
     * 4.创建一个输入流对象并将源文件对象传入,创建一个输出流对象引用
     * 5.每个缓冲区获取到碎片时,使用输出对应流对象写入到一个新的文件
     * 6.写相应的信息到配置文件
     */
    File partDir = new File("F:\\partsDir");
    File src = new File("F:\\周杰伦 - 简单爱.mp3");
    splitFile(src,partDir);

  }

  private static void splitFile(File src, File partDir) throws IOException {
    if(!partDir.exists()){
      partDir.mkdirs();
    }
    byte[] buf = new byte[1024*1024];
    FileInputStream fis = new FileInputStream(src);
    FileOutputStream fos = null;
    int len = 0;
    int count = 1;
    while ((len=fis.read(buf)) != -1){
      fos = new FileOutputStream(new File(partDir,"简单爱-part"+(count++)));
      fos.write(buf,0,len);
      fos.close();
    }

    String filename = src.getName();
    int partCount = count;

    fos = new FileOutputStream(new File(partDir,count+".properties"));
    //创建一个属性集。
    Properties prop = new Properties();
     //将配置信息存储到属性集中
    prop.setProperty("filename",src.getName());
    prop.setProperty("partCount",Integer.toString(partCount));

    //将属性集中的信息持久化
    prop.store(fos,"part file info");

    fos.close();
    fis.close();
  }
}

二、合并文件代码如下:

需求:使用SequenceInputStream类来合并碎片文件

           1.创建一个list集合,来保存指定文件夹碎片流集合
           2.用集合工具类方法Collections.enumeration()方法将list集合转换为Enumeration
           3.新建一个SequenceInputStream流对象,并传入第2步的Enumeration
           4.创建一个输出流对象,创建缓冲区循环写第3步SequenceInputStream读取的内容

public class MergeFileTest {
  public static void main(String[] args) throws IOException {
    /**
     * 需求:使用SequenceInputStream类来合并碎片文件
     * 1.创建一个list集合,来保存指定文件夹碎片流集合
     * 2.用集合工具类方法Collections.enumeration()方法将list集合转换为Enumeration
     * 3.新建一个SequenceInputStream流对象,并传入第2步的Enumeration
     * 4.创建一个输出流对象,创建缓冲区循环写第3步SequenceInputStream读取的内容
     */

    File partDir = new File("F:\\partsDir");
    List<FileInputStream> list = new ArrayList<FileInputStream>();
    for (int i=1;i<12;i++){
      FileInputStream fis = new FileInputStream(new File(partDir,"简单爱-part"+i));
      list.add(fis);
    }
    Enumeration<FileInputStream> en = Collections.enumeration(list);
    SequenceInputStream sis = new SequenceInputStream(en);

    FileOutputStream fos = new FileOutputStream(new File(partDir,"000.mp3"));

    byte[] buf = new byte[1024];
    int len = 0;
    while ((len=sis.read(buf)) != -1){
      fos.write(buf,0,len);
    }

    fos.close();
    sis.close();
  }
}


以上就是关于java 文件切割和合并的实例详解,大家如果有疑问可以留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# java  # 切割和合并文件  # 切割和合并文件的实现实例  # 切割和合并文件的详解  # Java如何将大文件切割成小文件  # java实现切割wav音频文件的方法详解【附外部jar包下载】  # Java实现文件切割拼接的实现代码  # Java实现大文件的切割与合并操作示例  # Java编程实现用hash方法切割文件  # 使用logback配置按天和文件大小切割输出日志  # 创建一个  # 多个  # 并将  # 转换为  # 配置文件  # 新建一个  # 区为  # 周杰伦  # 希望能  # 谢谢大家  # 有疑问  # File  # partDir  # IOException  # main  # String  # args  # throws  # partsDir  # private 


相关文章: 如何续费美橙建站之星域名及服务?  如何在万网开始建站?分步指南解析  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  建站之星如何一键生成手机站?  如何选择适配移动端的WAP自助建站平台?  建站之星代理如何优化在线客服效率?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  如何快速建站并高效导出源代码?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  建站之星展会模板:智能建站与自助搭建高效解决方案  官网建站费用明细查询_企业建站套餐价格及收费标准指南  高性能网站服务器配置指南:安全稳定与高效建站核心方案  如何在西部数码注册域名并快速搭建网站?  深入理解Android中的xmlns:tools属性  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  SQL查询语句优化的实用方法总结  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  高端建站三要素:定制模板、企业官网与响应式设计优化  外贸公司网站制作哪家好,maersk船公司官网?  广东企业建站网站优化与SEO营销核心策略指南  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  小建面朝正北,A点实际方位是否存在偏差?  如何快速搭建高效香港服务器网站?  山东网站制作公司有哪些,山东大源集团官网?  建站VPS推荐:2025年高性能服务器配置指南  制作企业网站建设方案,怎样建设一个公司网站?  建站为何优先选择香港服务器?  微信小程序 五星评分(包括半颗星评分)实例代码  建站主机选虚拟主机还是云服务器更好?  香港服务器选型指南:免备案配置与高效建站方案解析  建站之星安装路径如何正确选择及配置?  常州自助建站费用包含哪些项目?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  建站主机默认首页配置指南:核心功能与访问路径优化  建站之星CMS五站合一模板配置与SEO优化指南  如何用VPS主机快速搭建个人网站?  如何制作一个表白网站视频,关于勇敢表白的小标题?  个人网站制作流程图片大全,个人网站如何注销?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  Android滚轮选择时间控件使用详解  如何使用Golang安装API文档生成工具_快速生成接口文档  香港服务器网站卡顿?如何解决网络延迟与负载问题? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。