黑马程序员技术交流社区

标题: 切割后合并的文件,为什么大小是0kb? [打印本页]

作者: anywayDo    时间: 2015-5-9 15:59
标题: 切割后合并的文件,为什么大小是0kb?
  1. <blockquote><blockquote><div class="blockcode"><blockquote>/*
  2. 需求:将切割后的文件合并
  3. */
  4. import java.io.*;
  5. import java.util.*;
  6. class  SplitDemo
  7. {
  8.         public static void main(String[] args) throws IOException
  9.         {
  10.                 ArrayList<FileInputStream> al=new ArrayList<FileInputStream>();
  11.                 al.add(new FileInputStream("c:\\2.part"));
  12.                 al.add(new FileInputStream("c:\\3.part"));
  13.                 al.add(new FileInputStream("c:\\1.part"));
  14.                 al.add(new FileInputStream("c:\\0.part"));//将切割后的文件和读取流相关联,然后添加到al集合中。

  15.                 final Iterator<FileInputStream> it=al.iterator();

  16.                 Enumeration<FileInputStream> en=new Enumeration<FileInputStream>()//使用匿名内部类覆盖Enumeration中的方法。
  17.                 {
  18.                         public boolean hasMoreElements()
  19.                         {
  20.                                 return it.hasNext();
  21.                         }
  22.                         public FileInputStream nextElement()
  23.                         {
  24.                                 return it.next();
  25.                         }
  26.                 };
  27.                 SequenceInputStream sis=new SequenceInputStream(en);//将enumeration的对象作为实际参数传给序列流,将其中的元素合并成一个读取流
  28.                 FileOutputStream fos=new FileOutputStream("c:\\5.png");
  29.                 byte[] buf=new byte[1024];
  30.                 int len=0;
  31.                 while((sis.read(buf))!=-1)
  32.                 {
  33.                         fos.write(buf,0,len);
  34.                 }
  35.                 sis.close();
  36.                 fos.close();
  37.         }
  38. }
复制代码

使用切割的方法,把一个图片文件切成了四份,再使用序列流合并的时候,合并成功了,但是合并的文件是0kb,为什么会这样呢?





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2