public class test2 {
private static void division(File targetFile,long cutSize){
if (targetFile == null)return;
int num=targetFile.length()%cutSize==0?(int)(targetFile.length()/cutSize):(int)(targetFile.length()/cutSize+1);
try {
BufferedInputStream in=new BufferedInputStream(new FileInputStream(targetFile));
BufferedOutputStream out= null;
byte[] bytes=null;
int len=-1;
int count=0;
for (int i=0;i<num;i++){
out=new BufferedOutputStream(
new FileOutputStream(new File(
"D:\\test2\\"+(i+1)+"-temp-"+targetFile.getName())));
if (cutSize<=1024){
bytes=new byte[(int) cutSize];
count=1;
}else {
bytes=new byte[1024];
count= (int) (cutSize/1024);
}
while (count>0 && (len=in.read(bytes))!=-1){
out.write(bytes,0,len);
out.flush();
count--;
}
if (cutSize%1024 != 0){
bytes=new byte[(int) (cutSize%1024)];
len=in.read(bytes);
out.write(bytes,0,len);
out.flush();
out.close();
}
}
in.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
System.out.println("文件分割完成...");
}
}
private static void merge(Enumeration<InputStream> es){
SequenceInputStream sis =new SequenceInputStream(es);
try {
BufferedOutputStream bos=new BufferedOutputStream(
new FileOutputStream("d:\\test2\\test\\飞驰人生.mp4"));
byte[] bytes=new byte[1024];
int len = -1;
while ((len=sis.read(bytes)) != -1){
bos.write(bytes,0,len);
bos.flush();
}
bos.close();
sis.close();
System.out.println("合并完成。。");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
InputStream in1=new FileInputStream(new File("d:\\test2\\1-temp-飞驰人生.mp4"));
InputStream in2=new FileInputStream(new File("d:\\test2\\2-temp-飞驰人生.mp4"));
InputStream in3=new FileInputStream(new File("d:\\test2\\3-temp-飞驰人生.mp4"));
InputStream in4=new FileInputStream(new File("d:\\test2\\4-temp-飞驰人生.mp4"));
InputStream in5=new FileInputStream(new File("d:\\test2\\5-temp-飞驰人生.mp4"));
InputStream in6=new FileInputStream(new File("d:\\test2\\6-temp-飞驰人生.mp4"));
Vector<InputStream> v=new Vector<InputStream>();
v.add(in1);
v.add(in2);
v.add(in3);
v.add(in4);
v.add(in5);
v.add(in6);
Enumeration<InputStream> es=v.elements();
merge(es);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}