• java CharArrayReader类、CharArrayWriter类


    1、CharArrayReader类

    类型概述

    该类实现了一个可用作字符输入流的字符缓冲区,即该类可利用字符缓冲区当做字符输入流进行读取工作。

    构造方法

    CharArrayReader(char[] buf)
    
    • 1

    根据指定的字符数组创建一个字符数组流。

    CharArrayReader(char[] buf, int offset, int length)
    
    • 1

    根据指定的部分字符数组,数组从offset开始,长度为length,创建一个字符数组流。

    对象方法

    1、close函数

    void close()
    
    • 1

    关闭流。

    2、read函数

    int read()
    
    • 1

    从流中读入一个字符。

    int	read(char[] b, int off, int len)
    
    • 1

    读取最多len个字符到目标数组中,返回实际读取的字符数,当读取到缓冲区末尾时,返回-1。

    3、skip函数

    long skip(long n)
    
    • 1

    读入字符时跳过n个字符。

    使用示例

    import java.io.CharArrayReader;
    import java.io.IOException;
    import java.io.PrintStream;
    
    
    public class Test {
        public static void main(String[] args) throws IOException {
            char[] c = {'t', 'h', 'i', 's'};
            // 创建一个新的CharArrayReader
            CharArrayReader charArrayReader = new CharArrayReader(c);
            // 跳过前两个字符
            charArrayReader.skip(2);
            // 读取第三个字符
            char a = (char)charArrayReader.read();
            // 创建输出流并输出
            PrintStream printStream = new PrintStream(System.out);
            printStream.println(a);
    
            charArrayReader.close();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    输出:

    i
    
    • 1

    2、CharArrayWriter类

    类型概述

    该类实现了一个可用作字符输出流的字符缓冲区,当数据写入流时,缓冲区自动增长,请注意在此类上调用close()无效,并且可以在流关闭后调用此类的方法而不生成IOException。

    构造函数

    CharArrayWriter()
    
    • 1

    根据默认缓冲区大小创建CharArrayWriter流对象。

    CharArrayWriter(int initialSize)
    
    • 1

    根据指定缓冲区大小创建CharArrayWriter流对象。

    对象方法

    1、close函数

    void close()
    
    • 1

    关闭CharArrayWriter流。

    2、flush函数

    void flush()
    
    • 1

    清空CharArrayWriter流。

    3、append函数

    CharArrayWriter	append(char c)
    
    • 1

    在CharArrayWriter流追加一个字符。

    CharArrayWriter	append(CharSequence csq)
    
    • 1

    在CharArrayWriter流追加一个字符序列。

    CharArrayWriter	append(CharSequence csq, int start, int end)
    
    • 1

    在CharArrayWriter流追加一个字符序列,从位置start到位置end。

    4、writer函数

    void write(char[] c, int off, int len)
    
    • 1

    向流中写入一个数组,从位置off开始,长度为len。

    void write(int c)
    
    • 1

    向流中写入一个字符。

    void write(String str, int off, int len)
    
    • 1

    向流中写入一个字符串。

    5、writeTo函数

    void writeTo(Writer out)
    
    • 1

    将缓冲区的内容写入到另一个字符输出流中。

    6、toCharArray函数

    char[] toCharArray()
    
    • 1

    将缓冲区的数据转成字符数组。

    7、toString函数

    String toString()
    
    • 1

    将缓冲区的数据转成字符串。

    使用示例

    import java.io.CharArrayWriter;
    import java.io.IOException;
    import java.io.PrintStream;
    
    
    public class Test {
        public static void main(String[] args) throws IOException {
            char[] c = {'t', 'h', 'i', 's'};
            // 创建一个CharArrayWriter流
            CharArrayWriter charArrayWriter = new CharArrayWriter();
            // 将字符串写入CharArrayWriter流
            charArrayWriter.write(c);
            // 将CharArrayWriter流中的数据转换成字符串
            String s = charArrayWriter.toString();
            // 创建一个PrintStream
            PrintStream printStream = new PrintStream(System.out);
            // 将字符串打印到控制台
            printStream.println(s);
            charArrayWriter.close();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
  • 相关阅读:
    Java基础进阶网络编程-TCP和UDP协议
    【智能算法】象群算法(EHO)原理及实现
    【代码随想录算法训练营】第50天 | 第九章 动态规划(十一)+ 复习第20天 第六章 二叉树(六)
    第十三届蓝桥杯C++B组国赛C题——卡牌 (AC)
    zlMediaKit 4 buffer模块--buffer什么都能装&不只有send还有sendmsg/sendmmsg
    Java实现单点登录
    我对《RAG/大模型/非结构化数据知识库类产品》技术架构的思考、杂谈
    2022年千元半入耳式蓝牙耳机,高性价比蓝牙耳机推荐
    排序(冒泡、选择、插入、希尔、归并、快速)
    儿童护眼灯什么光源好?亮度柔和的护眼台灯分享
  • 原文地址:https://blog.csdn.net/weixin_49346755/article/details/125892986