java学习笔记08

今天学习SequenceInputStream,它能够将几个输入流合并成一个,它的构造函数参数有一个为,SequenceInputStream(Enumeration<?>Vector<FileInputStream>>

v.add(newFileInputStream("D:\\file\\1.txt"));//将下面的流添加到v中去。

v.add(new FileInputStream("D:\\file\\2.txt"));

v.add(new FileInputStream("D:\\file\\3.txt"));

Enumeration<FileInputStream>  en=v.elements();//列出所有的元素

//将多个流合并

SequenceInputStream>

//将多个流里面的数据写到某个文件中去

FileOutputStream  fos=new FileOutputStream("D:\\file\\all.txt");

byte[]>

int>

  while((len=sis.read(b))!=-1){

fos.write(b,0len);

}

fos.close();

sis.close();

}


public static void merge2(){

//不适用Vector  用ArrayList因为效率更快

ArrayList<FileInputStream>>

al.add(new FIleIntputStream("D:\\file\\1.txt"));

al.add(new FileinputStream("D:\\file\\2.txt"));

al.add(new FileInputStream()"D:\\file\\3.txt");

Iterator<FileInputStream>>

Enumeration<FIleInputStream>  en=new Enumeration<FileInputStream>(){//Enumeration是接口,需要实现里面的方法

public boolean hasMoreElements(){

return it.hasNext();

}

public  FileInputStream  nextElements(){

return it.next();

}

};

      //合并流

SequenceInputStream  sis=new SequenceInputStream(en);

FileOutputStream>

int>

byte[]>

while((len=sis.read(b))!=-1){

fos.write(b,0,len);

}

fos.close();

sis.close();

}


这种方法跟上面差不过 区别就是一个用Vector 而这个方法有一个方法返回的是Enumeration 就是 elements()

ArrayList 集合没有通过迭代器    可以通过new一个Enumeration接口   然后重写里面的内容 ,将ArrayList里面的内容,转化成Enumeration,然后合并流

写到指定文件中去。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值