A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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集合呢?

1 个回复

正序浏览
SequenceInputStream这个类构造函数出传入的参数是Enumeration类型的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马