- <blockquote><blockquote><div class="blockcode"><blockquote>/*
- 需求:将切割后的文件合并
- */
- import java.io.*;
- import java.util.*;
- class SplitDemo
- {
- public static void main(String[] args) throws IOException
- {
- ArrayList<FileInputStream> al=new ArrayList<FileInputStream>();
- al.add(new FileInputStream("c:\\2.part"));
- al.add(new FileInputStream("c:\\3.part"));
- al.add(new FileInputStream("c:\\1.part"));
- al.add(new FileInputStream("c:\\0.part"));//将切割后的文件和读取流相关联,然后添加到al集合中。
- final Iterator<FileInputStream> it=al.iterator();
- Enumeration<FileInputStream> en=new Enumeration<FileInputStream>()//使用匿名内部类覆盖Enumeration中的方法。
- {
- public boolean hasMoreElements()
- {
- return it.hasNext();
- }
- public FileInputStream nextElement()
- {
- return it.next();
- }
- };
- SequenceInputStream sis=new SequenceInputStream(en);//将enumeration的对象作为实际参数传给序列流,将其中的元素合并成一个读取流
- FileOutputStream fos=new FileOutputStream("c:\\5.png");
- byte[] buf=new byte[1024];
- int len=0;
- while((sis.read(buf))!=-1)
- {
- fos.write(buf,0,len);
- }
- sis.close();
- fos.close();
- }
- }
复制代码
使用切割的方法,把一个图片文件切成了四份,再使用序列流合并的时候,合并成功了,但是合并的文件是0kb,为什么会这样呢?
|
|