📜  Java StringReader类(1)

📅  最后修改于: 2023-12-03 14:42:16.483000             🧑  作者: Mango

Java StringReader类

Java StringReader类是用来读取字符串的字符流。它继承自Reader类,提供了从字符串中读取数据的方法,可以在没有缓冲区的情况下读取字符数据。

构造方法
  • StringReader(String str):构造一个新的字符串读取器,并将其初始化为提供的字符串。
方法
  • int read():读取单个字符,并返回该字符的 ASCII 值,如果已到达流的末尾,则返回 -1。
  • int read(char[] cbuf, int off, int len):读取 len 个字符到数组 cbuf 中,将字符放入数组的偏移量为 off 的位置开始存放。如果已到达流的末尾,则返回 -1。
  • long skip(long n):跳过 n 个字符,返回实际跳过的字符数。
  • boolean ready():判断字符串读取器是否准备好读取。
  • boolean markSupported():判断是否支持 mark() 方法和 reset() 方法。
  • void mark(int readAheadLimit):标记当前位置,在调用 reset() 方法后会回到这个位置。readAheadLimit 参数指定在标记位置之后能够读取字符的最大限制。
  • void reset():将字符串读取器重置到最近的标记处。
使用示例
import java.io.StringReader;
import java.io.IOException;

public class StringReaderExample {
    public static void main(String[] args) {
        String str = "Hello, world!";
        StringReader reader = new StringReader(str);
        try {
            int ch;
            while ((ch = reader.read()) != -1) {
                System.out.print((char) ch);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            reader.close();
        }
    }
}

输出结果为:

Hello, world!
总结

StringReader类是一个很简单的类,主要用于从字符串中读取字符,因为它不需要缓存区,所以适用于字符串较小的情况。在使用时,需要注意关闭读取器,以释放与字符串的连接。