• Java IO其它字符流简介说明


    转自:

    Java IO其它字符流简介说明

    下文讲述java.io包中其它字符流的操作实现类,如PushbackReader,LineNumberReader,StreamTokenizer,PrintWriter,StringReader,StringWriter如下所示:

    PushbackReader

    PushbackReader同PushbackInputStream功能非常相似,其不同之处在于PushbackReader处理字符而PushbackInputStream处理字节

    PushbackReader reader = new PushbackReader(new FileReader("e:\\test\\input.txt"));
    /*
    *设置缓冲区大小的写法
    * PushbackReader reader = new PushbackReader(new FileReader("e:\\test\\input.txt"), 8);
    */
    int data = reader.read();
    reader.unread(data);
    

    LineNumberReader

    LineNumberReader的功能:用于记录已读取数据行号的BufferedReader
    默认情况下,行号从0开始
    当LineNumberReader读取到行终止符时
    行号会递增
    我们可以使用getLineNumber()方法获取当前行号
    使用setLineNumber()方法设置当前行数
    如下:

    LineNumberReader reader = new LineNumberReader(new FileReader("e:\\test\\input.txt"));
    int data = reader.read();
    while(data != -1){
        char dataChar = (char) data;
        data = reader.read();
        int lineNumber = reader.getLineNumber();
    }
    

    StreamTokenizer

    StreamTokenizer可以将输入流转换成一系列符号
    然后循环调用nextToken()可以遍历底层输入流的所有符号
    每次调用nextToken()之后,StreamTokenizer有一些变量可以帮助我们获取读取到的符号的类型和值
    这些变量是:

    1. ttype 读取到的符号的类型(字符,数字,或者行结尾符)
    2. sval 如果读取到的符号是字符串类型,该变量的值就是读取到的字符串的值
    3. nval 如果读取到的符号是数字类型,该变量的值就是读取到的数字的值
    StreamTokenizer tokenizer = new StreamTokenizer(new StringReader("Mary had 1 little lamb..."));
    while(tokenizer.nextToken() != StreamTokenizer.TT_EOF){
        if(tokenizer.ttype == StreamTokenizer.TT_WORD) {
            System.out.println(tokenizer.sval);
        } else if(tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
            System.out.println(tokenizer.nval);
        } else if(tokenizer.ttype == StreamTokenizer.TT_EOL) {
            System.out.println();
        }
    }
    
    /*
    * TT_EOF表示流末尾
    * TT_EOL表示行末尾
    */
    

    PrintWriter

    PrintWriter的功能:
    将格式化后的数据写入到底层writer中

    StringReader

    StringReader的功能:
    将原始字符串转换成Reader,如下所示:

    Reader reader = new StringReader("输入字符串");
    int data = reader.read();
    while(data != -1) {
        //do something with data...
        doSomethingWithData(data);
        data = reader.read();
    }
    reader.close();
    

    StringWriter

    StringWriter的功能:采用字符串的形式从Writer中获取写入到其中数据,如下所示:

    StringWriter writer = new StringWriter();
    //write characters to writer.
    String data = writer.toString();
    StringBuffer dataBuffer = writer.getBuffer();
  • 相关阅读:
    httprunnet自动化测试实战
    微信小程序和H5之间互相跳转、互相传值
    多制式射频信号发生器 信号源
    PTA 7-20 xrf的镜子碎了?
    个推数据智能技术实践 | 教你打造数据质量心电图,智能检测数据“心跳”异常
    Docker学习——⑥
    【STM32】STM32F103C6T6标准外设库
    vue基础的一些实例推荐收藏
    【python数据分析刷题】-N04.中级函数
    【论文翻译】分布式数据库系统中的并发控制
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/126685330