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