📜  Java中的 StringReader mark(int) 方法及示例(1)

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

Java中的 StringReader mark(int) 方法及示例

简介

在Java中,StringReader是一个实现了Reader类的字符流输入源,允许我们从一个字符串中读取字符。mark(int)方法是StringReader类的一个方法,它允许我们在当前读取位置设置一个标记,以便在后续操作中回到这个位置。

方法签名
public void mark(int readAheadLimit) throws IOException

readAheadLimit表示标记位置之后允许继续读取的字符数,如果超过readAheadLimit个字符未读取,则会丢弃设置的标记。如果readAheadLimit小于0,则会抛出IllegalArgumentException异常。

示例
import java.io.IOException;
import java.io.StringReader;

public class StringReaderExample {
    public static void main(String[] args) throws IOException {
        String text = "Hello, World!";
        StringReader reader = new StringReader(text);

        // 读取前10个字符
        char[] buffer = new char[10];
        reader.read(buffer);
        String message = new String(buffer);
        System.out.println("读取前10个字符: " + message);

        // 设置标记并读取剩余字符
        reader.mark(5);
        buffer = new char[100];
        reader.read(buffer);
        message = new String(buffer);
        System.out.println("读取剩余字符: " + message);

        // 重置到标记位置
        reader.reset();
        buffer = new char[100];
        reader.read(buffer);
        message = new String(buffer);
        System.out.println("回到标记位置: " + message);

        // 关闭reader流
        reader.close();
    }
}
运行结果
读取前10个字符: Hello, Wor
读取剩余字符: ld!
回到标记位置: ld!