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小时内与您取得联系。