java 流操作对文件的分割和合并的实例详解
学习文件的输入输出流,自己做一个小的示例,对文件进行分割和合并。
下面是代码:
package com.dufy.file; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.SequenceInputStream; import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; import java.util.List; public class TestFileCutUnion { public static void main(String[] args) throws IOException { String fSrc = "D:/1.jpg";//源文件的目录 String fDir = "D:/1";//目标文件的目录 String fTemp = "D:/2";//暂存文件的目录 File srcFile = new File(fSrc); File dirFile = new File(fDir); File tempFile = new File(fTemp); String fileName = srcFile.getName();//获取文件的名称 cutFile(srcFile,tempFile);//调用分割方法 unionFile(dirFile,tempFile,fileName);//调用合并方法 } public static void cutFile(File srcFile, File tempFile) throws IOException { //读取源地址文件 FileInputStream fis = new FileInputStream(srcFile); FileOutputStream fos = null; //是否为文件,不是就创建 if(!tempFile.isFile()){ tempFile.mkdirs(); } byte[] b = new byte[100]; int len =0; int count = 0; while((len=fis.read(b)) != -1){ int num = count++; //写入暂存地址目录中 fos = new FileOutputStream(new File(tempFile, num+".part")); fos.write(b, 0, len); } fos.flush(); fos.close(); fis.close(); System.out.println("分割完成!"); } public static void unionFile(File dirFile, File tempFile, String fileName) throws IOException { //判断目标地址是否存在,不存在则创建 if(!dirFile.isFile()){ dirFile.mkdirs(); } List<FileInputStream> list = new ArrayList<FileInputStream>(); //获取暂存地址中的文件 File[] files = tempFile.listFiles(); for (int i = 0; i < files.length; i++) { //用FileInputStream读取放入list集合 list.add(new FileInputStream(new File(tempFile, i+".part"))); } //使用 Enumeration(列举) 将文件全部列举出来 Enumeration<FileInputStream> eum = Collections.enumeration(list); //SequenceInputStream合并流 合并文件 SequenceInputStream sis = new SequenceInputStream(eum); FileOutputStream fos = new FileOutputStream(new File(dirFile, fileName)); byte[] by = new byte[100]; int len; while((len=sis.read(by)) != -1){ fos.write(by, 0, len); } fos.flush(); fos.close(); sis.close(); System.out.println("合并完成!"); } }
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数260
191.63 KB下载数245
143.91 KB下载数1139
183.71 KB下载数640
644.84 KB下载数2752
相关文章
发现更多好内容猜你喜欢
AI推送时光机java 流操作对文件的分割和合并的实例详解
后端开发2023-05-31
C#实现文件分割和合并的示例详解
后端开发2022-12-26
Java实现文件的分割与合并
后端开发2024-04-02
Java实现大文件的分割与合并的方法详解
后端开发2022-11-13
java实现对excel文件的处理合并单元格的操作
后端开发2024-04-02
java 对象输入输出流读写文件的操作实例
后端开发2023-05-31
JAVA中IO操作的字节流和字符流实例分析
后端开发2023-06-29
C语言实现对文件进行操作的示例详解
后端开发2023-05-15
Java NIO Path接口和Files类配合操作文件的示例分析
后端开发2023-05-30
Java文件操作之IO流 File类的使用详解
后端开发2024-04-02
Java文件的读写操作方法实例分析
后端开发2023-06-30
Java 在Word中创建邮件合并模板并合并文本和图片的操作方法
后端开发2024-04-02
一文详解Java中的Stream的汇总和分组操作
后端开发2024-04-02
C语言中炫酷的文件操作实例详解
后端开发2024-04-02
C++文件的操作及小实验示例代码详解
后端开发2024-04-02
PHP文件函数详解:实现文件的读写和操作功能
后端开发2023-11-20
Java IO流对象的序列化和反序列化实例详解
后端开发2023-05-31
Shell脚本与Java的完美结合:数组和文件操作实战指南!
后端开发2023-10-31
从零开始学习Java中的Shell脚本:数组和文件操作详解!
后端开发2023-10-31
咦!没有更多了?去看看其它编程学习网 内容吧