java下io文件切割合并功能

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();
        
    }

}
原文地址:https://www.cnblogs.com/zywf/p/4780615.html