• java 21


    SequenceInputStream :表示其他输入流的逻辑串联。

    构造方法摘要
    SequenceInputStream(Enumeration<? extends InputStream> e)
              通过记住参数来初始化新创建的 SequenceInputStream,该参数必须是生成运行时类型为 InputStream 对象的 Enumeration 型参数。
    SequenceInputStream(InputStream s1, InputStream s2)
              通过记住这两个参数来初始化新创建的 SequenceInputStream(将按顺序读取这两个参数,先读取 s1,然后读取 s2),以提供从此 SequenceInputStream 读取的字节。

    首先演示第二个构造方法:

     SequenceInputStream(InputStream s1, InputStream s2)

    需求:把2个文件的内容复制到另1个文件中
      以前的操作:
        a.txt -- b.txt
        c.txt -- d.txt
      现在想要:
        a.txt+b.txt -- c.txt

     1 public static void main(String[] args) throws IOException {
     2         // 把DataStreamDemo.java和user.txt合并成Copy.txt
     3         
     4         //首先封装2个文件,由于SequenceInputStream(InputStream s1, InputStream s2)需要的参数列表是InputStream类的
     5         //FileInputStrem是InputStream的子类,使用多态:
     6         InputStream in1 = new FileInputStream("DataStreamDemo.java");
     7         InputStream in2 = new FileInputStream("user.txt");
     8         //把这两个文件放进SequenceInputStream中
     9         SequenceInputStream in = new SequenceInputStream(in1, in2);
    10         
    11         //封装目的地
    12         BufferedOutputStream bw = new BufferedOutputStream(new FileOutputStream("Copy.txt"));
    13         //读取in1和in2的数据,并写入in中
    14         byte[] by = new byte[1024];
    15         int len = 0;
    16             while((len = in.read(by)) != -1){
    17                 bw.write(by,0,len);
    18             }    
    19             in1.close();
    20             in2.close();
    21             bw.close();
    22             in.close();
    23         
    24     }

    3、演示第一种构造方法:

    SequenceInputStream(Enumeration e)
      通过简单的回顾我们知道了Enumeration是Vector中的一个方法的返回值类型。
      Enumeration<E> elements()

    需求:把3个文件的数据复制到另一个文件中
      以前的操作:
        a.txt -- b.txt
        c.txt -- d.txt
        e.txt -- f.txt
      现在想要:
        a.txt+b.txt+c.txt -- d.txt

     1     public static void main(String[] args) throws IOException {
     2         //SequenceInputStream(Enumeration e)需要的是Enumeration
     3         //而Enumeration是Vector中的一个方法的返回值类型。Enumeration<E> elements()
     4         //所以就要实现这个方法。
     5 
     6         //首先定义一个Vector对象
     7         Vector<InputStream> v = new Vector<InputStream>();
     8         InputStream i1 = new FileInputStream("pw.txt");
     9         InputStream i2 = new FileInputStream("user.txt");
    10         InputStream i3 = new FileInputStream("DataStreamDemo.java");
    11         
    12         //把这三个文件添加到Vector
    13         v.add(i1);
    14         v.add(i2);
    15         v.add(i3);
    16         //实现Vector的这个方法,得到Enumeration
    17         Enumeration<InputStream> e = v.elements();
    18         //得到以后就可以使用下面这个方法,这样的话,3个文件中的数据就存储在si中了
    19         SequenceInputStream si = new SequenceInputStream(e);
    20         
    21         //建立输入流
    22         BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream("Copy.txt"));
    23         
    24         //读取Vertor的数据,再添加到Copy.txt中
    25         byte[] by = new byte[1024];
    26         int len = 0;
    27         while((len = si.read(by)) != -1){
    28             bo.write(by,0,len);
    29         }
    30         si.close();
    31         bo.close();
    32     }
    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    centos6安装mono
    Flashcache系统管理员手册
    【ZT】超乎想象 HTML5九大超酷特效体验
    程序员不可不知的C#代码规范
    【推薦】帮你炼成软件架构师的97件事
    [ZT]智能客户端(Smart Client)
    【ZT】成就大型高性能网站的十项规则
    通過SQL取出所有周六/周日的日期到Table
    【杯具】面试才说一句话就被轰出来了
    Integer在webservice的传递
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5929610.html
Copyright © 2020-2023  润新知