SequenceInputStream 实现文件的切割与合并
来源:互联网 发布:知乎911是美国自导自演 编辑:程序博客网 时间:2024/05/17 04:57
SequenceInputStream实现文件的切割与合并
package file;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.SequenceInputStream;import java.util.Enumeration;import java.util.Iterator;import java.util.LinkedHashSet;//文件切割合并public class Demo11 {public static void main(String[] args) throws IOException {// TODO Auto-generated method stub//文件切割spilt(new File("D:\\music\\a.mp3"),"D:\\music\\");System.out.println("文件切割完成....");File srcFile = new File("D:\\music\\");merge(srcFile,new File("D:\\music\\"),"b.mp3");System.out.println("文件合并完成....");}private static void spilt(File src, String dir) throws IOException {// TODO Auto-generated method stubFileInputStream fis = new FileInputStream(src);FileOutputStream fos= null ;int len = 0;byte[] buf = new byte[1024*1024];int count=1;while((len = fis.read(buf)) != -1){int i= count++;fos = new FileOutputStream(dir+i+".mp3");fos.write(buf, 0, len);}fos.close();fis.close();} //切割的文件位置,合并后文件存放的文件位置,合并后的文件名private static void merge(File srcFile,File destFile,String fileName) throws IOException {// TODO Auto-generated method stub//LinkedHashSet<InputStream> linkhashset//如果文件路径不存在则创建if(!destFile.isFile()){destFile.mkdirs();}//获取并存放切割的所有文件File[] files = srcFile.listFiles();//将切割的文件放入LinkedHashSet集合中LinkedHashSet<InputStream> linkedhashset =new LinkedHashSet<InputStream>();for(int i=1 ;i< files.length;i++) { linkedhashset.add(new FileInputStream(new File(srcFile,i+".mp3"))); }final Iterator<InputStream> it = linkedhashset.iterator(); //SequenceInputStream合并流 SequenceInputStream sis = new SequenceInputStream( //使用Eunmeration(列举)将文件列举出来 new Enumeration<InputStream>(){@Overridepublic boolean hasMoreElements() {// TODO Auto-generated method stubreturn it.hasNext();}@Overridepublic InputStream nextElement() {// TODO Auto-generated method stubreturn it.next();} } ); //合并文件 OutputStream fos = new FileOutputStream(new File(destFile,fileName)); int len = 0; byte[] buf = new byte[1024]; while((len = sis.read(buf))!= -1){ fos.write(buf,0,len); } fos.close(); sis.close();}}
阅读全文
0 0
- SequenceInputStream 实现文件的切割与合并
- SequenceInputStream 合并流 与 切割流
- 文件的分割与合并SequenceInputStream
- 文件的切割与合并
- 文件的切割与合并
- Java---文件的切割与合并,已经实现图形界面(工具)
- 文件切割与合并
- 文件切割与合并
- java实现文件的切割及合并
- 黑马程序员-文件的切割与合并
- 文件的切割与合并练习
- 大文件的切割与合并
- Linux大文件的切割与合并
- File类文件的切割与合并
- 第22天 SequenceInputStream、合并切割、对象的输入输出流、Properties配置文件、.printStream、编码与解码、转换流、递归
- 合并文件 SequenceInputStream
- Java中SequenceInputStream合并流实现多个文件合并
- IO流--SequenceInputStream序列化流的应用---文件切割
- CentOS 6.6 安装Redis
- 扩增子分析QIIME2. 8数据筛选Filtering data
- The 36 questions
- 使用nfs启动内核时,“Retry count exceeded; starting again”
- Android主题相关(初探)
- SequenceInputStream 实现文件的切割与合并
- [Vue.js启航]——使用Vuex进行状态管理
- C# DataGridView添加新行的2个方法
- P1192 台阶问题
- leetcode[Largest Palindrome Product]
- Dijkstra模板求单源点最短路径
- 实参和形参
- Spring —— IOC控制反转
- dos命令窗口下下java命令提示找不到或无法加载主类