您的位置:首页 > 编程语言 > Java开发

java下io文件切割合并功能

2015-09-03 20:06 519 查看
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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: