import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class ChaiFenWenJian {
/**
*
*sourceFile:源文件的路径
*targetDirectory:保存文件的目录(例:'C:\\')
*prefix:是分割后文件的前缀(例:'2015-09-09')
*prefix:是分割后文件的后缀——文件的格式(例:.txt)
*size:是分隔后单一文件的大小单位是1kb的倍数,size传10,分割后单一文件就是10K。传1024,文件就是1M一个。
**/
public static void cutToMoreFile(String sourceFile, String targetDirectory, String prefix,String suffix, int size) {
//加载源文件
File source = new File(sourceFile);
InputStream in = null;
OutputStream out = null;
int len = 0;
int fileIndex = 1;
//设置一次加载的大小
byte[] buffer = new byte[1024];
try {
//把源文件读到InputStream中
in = new FileInputStream(source);
//循环
while(true) {
//分割后的文件流
out = new FileOutputStream(targetDirectory + File.separator + prefix + fileIndex++ + suffix);
for(int i = 0; i < size; i++) {
//如果文件读取完就退回方法。
if((len = in.read(buffer)) != -1) {
//写入分割后的文件
out.write(buffer, 0, len);
}else {
//执行finally内容后,退出方法
return;
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
//关系流
in.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}