java StringReader类、StringWriter类

1、StringReader类

类型概述

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

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

构造方法

StringReader(String s)

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

对象方法

1、close函数

void close()

关闭StringReader流。

2、read函数

int read()

从StringReader流中读取一个字符。

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

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

3、skip函数

long skip(long ns)

跳过指定个数的字符。

使用示例

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);

    }
}

输出结果为

t

2、StringWriter类

类型概述

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

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

构造方法

StringWriter()

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

StringWriter(int initialSize)

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

对象方法

1、close函数

void close()

关闭StringWriter流。

2、flush函数

void flush()

清空StringWriter流的内容。

3、write函数

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

向流中写入字符数组。

void write(int c)

向流中写入一个字符。

void write(String str)

向流中写入一个字符串。

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

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

4、append函数

StringWriter append(char c)

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

StringWriter append(CharSequence csq)

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

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

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

5、toString函数

String toString()

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

6、getBuffer函数

StringBuffer getBuffer()

返回字符串缓冲区。

使用示例

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();
    }
}

最后输出为:

this is a text!

你可能感兴趣的:(#,python,+,java,+,c,+,go,java,数据结构,算法)