📅  最后修改于: 2023-12-03 14:42:16.483000             🧑  作者: Mango
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类是一个很简单的类,主要用于从字符串中读取字符,因为它不需要缓存区,所以适用于字符串较小的情况。在使用时,需要注意关闭读取器,以释放与字符串的连接。