• java StringReader类、StringWriter类


    1、StringReader类

    类型概述

    Java StringReader类是一个以字符串为源的字符流。它接受输入字符串并将其更改为字符流。它继承了Reader类。在StringReader类中,未使用系统资源(如网络套接字和文件),因此不需要关闭StringReader。

    StringReader的有参构造方法传入的是String类型的数据,通过read()重载方法读取流中部分或者全部的字符内容。

    构造方法

    StringReader(String s)
    
    • 1

    根据一个字符串来创建一个StringReader流。

    对象方法

    1、close函数

    void close()
    
    • 1

    关闭StringReader流。

    2、read函数

    int read()
    
    • 1

    从StringReader流中读取一个字符。

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

    从StringReader流中读取一个字符数组。

    3、skip函数

    long skip(long ns)
    
    • 1

    跳过指定个数的字符。

    使用示例

    import java.io.IOException;
    import java.io.StringReader;
    
    public class Test {
        public static void main(String[] args) throws IOException {
            String s = "this is a text";
            StringReader stringReader = new StringReader(s);
    
            char c = (char)stringReader.read();
            System.out.println(c);
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    输出结果为

    t
    
    • 1

    2、StringWriter类

    类型概述

    Java StringWriter类是一个字符流,它从字符串缓冲区收集输出,该缓冲区可用于构造String。StringWriter类继承Writer类。在StringWriter类中,未使用系统资源(如网络套接字和文件),因此不需要关闭StringWriter。

    在字符串缓冲区中收集输出的字符流,可用于构造字符串, 关闭流无效,关闭后调用其他方法不会报异常。

    构造方法

    StringWriter()
    
    • 1

    使用默认的初始字符串缓冲区大小创建一个新的StringWriter,默认大小为16个字符。

    StringWriter(int initialSize)
    
    • 1

    使用指定的大小创建一个新的StringWriter。

    对象方法

    1、close函数

    void close()
    
    • 1

    关闭StringWriter流。

    2、flush函数

    void flush()
    
    • 1

    清空StringWriter流的内容。

    3、write函数

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

    向流中写入字符数组。

    void write(int c)
    
    • 1

    向流中写入一个字符。

    void write(String str)
    
    • 1

    向流中写入一个字符串。

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

    向流中写入一个字符串的一部分,从字符数组中的下标off开始,写入len个字符。

    4、append函数

    StringWriter append(char c)
    
    • 1

    将指定字符附加到此StringWriter中。

    StringWriter append(CharSequence csq)
    
    • 1

    将指定字符序列附加到此StringWriter中。

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

    将指定字符序列附加到此StringWriter中,start为序列的开始位置,end为序列的结束位置。

    5、toString函数

    String toString()
    
    • 1

    以字符串形式返回缓冲区的当前值。

    6、getBuffer函数

    StringBuffer getBuffer()
    
    • 1

    返回字符串缓冲区。

    使用示例

    public class Test {
        public static void main(String[] args) throws IOException {
            StringWriter stringWriter = new StringWriter();
            PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(System.out));
    
            stringWriter.write("this is a text!");
            String s = stringWriter.toString();
            printWriter.write(s);
    
            printWriter.close();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    最后输出为:

    this is a text!
    
    • 1
  • 相关阅读:
    如何让GPT不再胡说八道
    C++ 类与对象(详细复习篇下)
    React 组件生命周期
    Postman接口测试工具,提高SpringBoot开发效率
    网络攻击近在咫尺:数据加密与SSL成为信息安全之盾
    高效解决香港服务器负载过高的方法
    一篇永久摆脱Mysql时区错误问题,idea数据库可视化插件配置
    操作系统的发展
    让测试人头疼的这几件“小事”
    docker 网络
  • 原文地址:https://blog.csdn.net/weixin_49346755/article/details/125888139