//【需求】将上一视频中的子文件进行合并
package demo;
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;
public class MergeFileTest {
public static void main(String[] args) throws IOException {
File dir = new File("D:\\Java-Eclipse-PersonalFile\\vedio23.IO.53");
mergeFile(dir);
}
public static void mergeFile(File dir) throws IOException {//合并文件,一般需要传入一个装有碎片的文件夹
ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();
for(int x =1 ; x<7;x++){
al.add(new FileInputStream(new File(dir,x+".part")));//将dir目录下的part文件封装成file对象
//for循环第一次,就将dir目录下的1.part封装成file对象,用第一个FileInputStream去关联,以此类推
}
Enumeration<FileInputStream> en = Collections.enumeration(al);//利用集合框架工具类获取枚举
SequenceInputStream sis = new SequenceInputStream(en);
//目的
FileOutputStream fos = new FileOutputStream(new File(dir,"1.mp3"));//将最终合并所得文件1.mp3放在dir目录下
byte[] buf = new byte[1024];
int len = 0;
while((len = sis.read(buf))!=-1){
fos.write(buf,0,len);
}
fos.close();
sis.close();
}
}
/**
* 【运行结果】
* 将dir目录下的碎片文件成功合并成1.mp3文件
*/
24-IO流-53-IO流(文件合并)
最新推荐文章于 2022-11-28 09:55:24 发布