zoukankan      html  css  js  c++  java
  • io系列之常用流一

    一、 读取键盘录入和数据打印


        在System类中,
              System.out: 对应的是标准输出设备(控制台)(一个PrintStream)。
              System.in: 对应的是标准输入设备(键盘)(一个InPutStream)。

        由System.in的定义可知 :public static final InputStream in : in属性本身是一个字节输入流对象,

                  可有: InputStream in = System.in;
                     其read方法是读入一个从键盘上输入的字节。


        由System.out的定义可知 :public static final PrintStream out:out本身就是一个字节输出流对象,

                  可有: PrintStream out = System.out;
                       其write方法是将一个字节打印到控制台上。

        另外: System.setIn :重新分配标准输入流
            System.setOut :重新分配标准输出流


    二、打印流

        该流提供了打印方法,可以将各种将各种数据类型都原样打印

        字节打印流:
            PrintStream
              构造函数可以接受的参数类型:


                    1,File对象: File 同时传入字符集名称可指定编码表
                    2,字符串路径: String 同时传入字符集名称可指定编码表
                    3,字节打印流: OutPutStream 同时传入True,可让println方法自动刷新


        字符打印流:
            PrintWriter
              构造函数可接受的参数:


                    1,File对象: File 同时传入字符集名称可指定编码表
                    2,字符串路径:String 同时传入字符集名称可指定编码表
                    3,字节打印流:OutPutStream 同时传入True,可让println方法自动刷新
                    4,字符打印流:Writer 同时传入True,可让println方法自动刷新


            他们中都有一个特有的输出方法:print and println




    三、读取转换流

        InputStreamReader ,将一个输入字节流,转换成一个输入字符流。(字节流到字符流的桥梁)

        构造方法:
            InputStreamReader(InputStream in) 传入一个输入字节流对象,创建一个使用默认字符集的 InputStreamReader

            InputStreamReader(InputStream in, Charset cs) 传入一个输入字节流对象,创建使用给定字符集的 InputStreamReader

            InputStreamReader(InputStream in, CharsetDecoder dec) 传入一个输入字节流对象, 创建使用给定字符集解码器的 InputStreamReader。

            InputStreamReader(InputStream in, String charsetName) 传入一个输入字节流对象, 创建使用指定字符集的 InputStreamReader

        键盘行录入的使用示例:BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));


    四、输出转换流

        OutputStreamWriter:将一个输出字节流,转换成一个输出字符流。(字符流到字节流的桥梁)

        构造方法:
            OutputStreamWriter(OutputStream out) 传入一个输出字节流对象,创建使用默认字符编码的 OutputStreamWriter

            OutputStreamWriter(OutputStream out, Charset cs) 传入一个输出字节流对象,创建使用给定字符集的 OutputStreamWriter。

            OutputStreamWriter(OutputStream out, CharsetEncoder enc) 传入一个输出字节流对象,

                                        创建使用给定字符集编码器的 OutputStreamWriter

            OutputStreamWriter(OutputStream out, String charsetName) 传入一个输出字节流对象,创建使用指定字符集的 OutputStreamWriter

        字符和字节之间的桥梁,一般,涉及到字符编码转换时,需要用到转换流(同时打印流也可以指定编码表)



    五、序列流

        SequenceInputStream(InputStream的子类)

        将装在集合中的InputStream对象按照顺序打印到指定的文件中(该集合必须具备Enumeration)

        构造方法:
            SequenceInputStream(Enumeration<? extends InputStream> e)

            SequenceInputStream(InputStream s1, InputStream s2)


      文件切割: Java中没有提供该方法,但是我们可以自己实现。
        思想: 使用一个数组来从源文件中读取数据, 每次将数据存入目的文件(碎片文件)1中,当该文件中存到规定容量时,
            让下一次数组中的数据存入目的问件(碎片文件)2中,当此文件也满时,存入三中,直到源文件数据被取完。

  • 相关阅读:
    推荐一个c++小巧开源且跨平台的图像解码库
    设计模式---桥接模式
    redis数据结构及其使用场景、持久化、缓存淘汰策略
    mysql------explain工具
    mysql索引数据结构
    java8(2)--- Stream API
    java8(1)--- lambda
    springboot自动装配(2)---实现一个自定义自动装配组件
    springboot自动装配(1)---@SpringBootApplication注解怎么自动装配各种组件
    自己挖的坑跪着也要填完---mapper配置文件和java源文件在同一包下
  • 原文地址:https://www.cnblogs.com/soficircle/p/6714467.html
Copyright © 2011-2022 走看看