package cn.stat.p1.file; 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 qiefiledemo { private static int SIZE=1024*1024; /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { //文件切割 File file=new File("D:\3.avi"); splitFile(file); //文件组合 File file2=new File("D:\cc"); mergeFile(file2); } //文件组合 public static void mergeFile(File dir) throws IOException { ArrayList<FileInputStream> al=new ArrayList<FileInputStream>(); for(int i=0;i<=19;i++) { al.add(new FileInputStream(new File(dir,i+".pat"))); } Enumeration<FileInputStream> en=Collections.enumeration(al); SequenceInputStream sis=new SequenceInputStream(en); FileOutputStream fos=new FileOutputStream(new File(dir,"1.avi")); byte[] buf=new byte[SIZE]; int len=0; while((len=sis.read(buf))!=-1) { fos.write(buf,0,len); } fos.close(); sis.close(); } //文件切割 public static void splitFile(File file) throws IOException { //用于读取流的关联文件 FileInputStream fis=new FileInputStream(file); //定义一个1M的缓冲区 byte[] buf=new byte[SIZE]; //创建目地 FileOutputStream fos=null; int conun=0; int len=0; File dir=new File("D:\cc"); if(!dir.exists()) { dir.mkdir(); } while((len=fis.read(buf))!=-1) { fos=new FileOutputStream(new File(dir,(conun++)+".pat")); fos.write(buf,0,len); } fos.close(); fis.close(); } }