• 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

  • 相关阅读:
    板子的配置
    检查点队列中未提交的数据块如何管理会减少内存使用
    js求月末new Date(year,month,0)
    js 截取字符串
    es6 x,y 互换值
    android x86 9.0r2 install guide 旧笔记本改造机顶盒
    Linux中常用命令
    在pyspark中调用scala/java代码
    Linux中安装sbt
    IDEA中手动引入JAR包
  • 原文地址:https://www.cnblogs.com/xuwangqi/p/11242918.html
Copyright © 2020-2023  润新知