zoukankan      html  css  js  c++  java
  • 22打印流printStream 合并流

    1.打印流

    底层提供打印或者打印换行功能(打印就是输出),和系统流一起用就是打印到控制台 ,System.out.println Sytem.err.println

    public static void main(String[] args) throws IOException {
            // TODO Auto-generated method stub
      //打印流
            PrintStream p=new PrintStream("D:\1.txt");
            //写数据
            p.write("sbc".getBytes());
            //打印到具体位置--------相当于write
            p.print("xwq");
        }

    2.合并流

    SequeceInputStream

    要使用这个类,所以我们需要这个类的对象,所以我们看SequeceInputStream的构造函数

    SequenceInputStream(Enumeration<? extends InputStream> e)
    初始化新创建的 SequenceInputStream记住的说法,它必须产生对象的运行时类型是 InputStream Enumeration
    SequenceInputStream(InputStream s1, InputStream s2)
    初始化新创建的 SequenceInputStream记住两个参数,将其写入的命令,第一 s1然后 s2,提供字节是从这 SequenceInputStream读。 

    第一个构造函数里面的参数是Enumeration 类型 ,这个类型是Vector集合的迭代器,是通过Vector的elements返回的。所以需要用Vector存储要合并的输入流。

        public static void main(String[] args) throws IOException {
            //提供输入流-------提供待合并的数据
            FileInputStream in1=new FileInputStream("D:\1.txt");
            FileInputStream in3=new FileInputStream("D:\3.txt");
            FileInputStream in4=new FileInputStream("D:\4.txt");
            //创建集合对象
            Vector< InputStream> v=new Vector<InputStream>();
            //把输入流对象添加到集合中
            v.add(in1);
            v.add(in3);
            v.add(in4);
            //获取到Enueration---把集合中的所有输入流对象存放到e对象中
            Enumeration<InputStream>e=v.elements();
            //创建合并流对象-把含有输入流对象的e返稿合并流对象中
            SequenceInputStream sis=new SequenceInputStream(e);
            //文件字节输出流
            FileOutputStream os=new FileOutputStream("D:\5.txt");
            //用一个对象统一读取三个对象的字节流,就相当于合并
            byte[] bs=new byte[10];
            int len=-1;
            while((len=sis.read(bs))!=-1) {
                os.write(bs,0,len);
            }
            //关流
            sis.close();
            os.close();
        }

    过程是:1.提供多个输入流对象

                2.存储在Vector集合对象中

               3.获取Enumeration对象

               4.最后构建成合并流对象并用统一对象进行对多个对象进行统一读取 1

  • 相关阅读:
    面试官问我注解怎么使用?我这样告诉他
    dump 叶子节点
    dump 分支块
    设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
    EBS业务学习之应收管理
    EBS业务学习之应付管理
    EBS多组织结构
    总帐模块表结构
    iOS界面不能点击(tableView 的cell 不能使用点击事件,tableView也不能上下滚动)
    EBS业务学习之库存管理
  • 原文地址:https://www.cnblogs.com/xuwangqi/p/11242918.html
Copyright © 2011-2022 走看看