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!
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不负韶华ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值