黑马程序员技术交流社区

标题: 又是一个看视频遇到的问题。在IO流看的应该是关于集合的... [打印本页]

作者: yjsf216    时间: 2015-3-9 15:34
标题: 又是一个看视频遇到的问题。在IO流看的应该是关于集合的...
本帖最后由 yjsf216 于 2015-3-9 15:41 编辑

看视频中将三个文件流合并用的是
  1. public static void SequenStreamDemo() throws IOException{
  2.                 Vector<FileInputStream> v= new Vector<FileInputStream>();
  3.                
  4.                 v.add(new FileInputStream("1.txt"));
  5.                 v.add(new FileInputStream("2.txt"));
  6.                 v.add(new FileInputStream("3.txt"));
  7.                
  8.                 Enumertation<FileInputStream> en= v.elements();
  9.                
  10.                 SequenceInputStream sis= new SequenceInputStream(en);
  11.                 FileOutputStream fos= new FileOutputStream("4.txt");
  12.                
  13.                 byte[] buf= new byte[1024];
  14.                 int len =0;
  15.                 while((len=sis.read(buf))!=-1){
  16.                         fos.wrte(buf, 0, len);
  17.                 }
  18.                 fos.close();
  19.                 sis.close();
  20.         }
复制代码


合并成了“4.txt”文件,但是再讲分割流中,毕老师有将三个图片合并
  1. public static void merge() throw IOException{
  2.                 ArrayList<FileInputStream> al= new ArrayList<FileInputStream>();
  3.                
  4.                 for(int x=1; x<=3; x++){
  5.                         al.add(new FileInputStream(x+".part"));
  6.                 }
  7.                
  8.                 final Iterator<FileInputStream> it= al.iterator();
  9.                
  10.                 Enumeration<FileInputStream> en= new Enumeration<FileInputStram>(){
  11.                         public boolean hasMoreElements(){
  12.                                 return it.hasNext();
  13.                         }
  14.                         public FileInputStream nextElement(){
  15.                                 return it.next();
  16.                         }
  17.                 };
  18.                
  19.                 SequenceInputStream sis= new SequenceInputStream(en);
  20.                 FileOutputStream fos= new FileOutputStream("0.bmp");
  21.                
  22.                 byte[] buf= new byte[1024];
  23.                 int len=0;
  24.                 while((len=sis.read(buf)!=-1){
  25.                         fos.write(buf, 0, len);
  26.                 }
  27.                 sis.close();
  28.                 fos.close();
  29.         }
复制代码

那这时候为什么要写了Enumeration集合呢?
作者: 班凤飞    时间: 2015-3-9 18:23
SequenceInputStream这个类构造函数出传入的参数是Enumeration类型的




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