import java.io.*;
import java.util.*;
class SplitFile
{
public static void main(String[] args) throws IOException
{
//splitFile();
merge();
}
public static void merge()throws IOException
{
/*
Vector<FileInputStream> v = new Vector<FileInputStream>();
for(int x=1;x<=4;x++)
{
v.add(new FileInputStream("e:\\javademo\\day20\\SplitFiles\\"+x+".part"));
}
Enumeration<FileInputStream> en = v.elements();
SequenceInputStream sis = new SequenceInputStream(en);
*/
ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();
for(int x=1;x<=4;x++)
{
al.add(new FileInputStream("e:\\javademo\\day20\\SplitFiles\\"+x+".part"));
}
final Iterator<FileInputStream> it = al.iterator();
Enumeration<FileInputStream> en = new Enumeration<FileInputStream>()
{
public boolean hasMoreElements()
{
return it.hasNext();
}
public FileInputStream nextElement()
{
return it.next();
}
};
SequenceInputStream sis = new SequenceInputStream(en);
FileOutputStream fos = new FileOutputStream("e:\\javademo\\day20\\SplitFiles\\2.bmp");
byte[] buf = new byte[1024];
int len=0;
while((len=sis.read(buf))!=-1)
{
fos.write(buf,0,len);
}
sis.close();
fos.close();
}
public static void splitFile() throws IOException
{
FileInputStream fis = new FileInputStream("e:\\javademo\\day20\\SplitFiles\\1.bmp");
FileOutputStream fos = null;
byte[] buf = new byte[1024*1024];//1M //1G=1024M 1M=1024KB 1KB=1024B
int len=0;
int count=1;
while((len=fis.read(buf))!=-1)
{
fos=new FileOutputStream("e:\\javademo\\day20\\SplitFiles\\"+(count++)+".part");
fos.write(buf,0,len);
fos.close();
}
fis.close();
}
}