package mergefiles;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
public class MergeFiles {
/*
* 需求:和并几个碎片文件,采用SequenceInputStream,然后输出到一个文件中;
*/
public static void main(String[] args) throws IOException {
File file=new File("F:\\splitfiles");
mergefiles(file);
}
public static void mergefiles(File dir) throws IOException {
//建立一个大流
ArrayList<FileInputStream> al=new ArrayList<>();
int num=(dir.list()).length;//计算dir目录下的文件数量
for(int i=1;i<=num;i++) {
al.add(new FileInputStream(new File(dir,i+".part")));
}
Enumeration<FileInputStream> en=Collections.enumeration(al);
SequenceInputStream sis=new SequenceInputStream(en);//至此输入的大流才建成!
//接下来就是输出了
FileOutputStream fos=new FileOutputStream(new File(dir,"mergerfile.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基础:IO】文件合并(mergefiles)Demostration
最新推荐文章于 2024-03-14 14:25:09 发布