📌  相关文章
📜  Java中的 CharArrayReader mark(int) 方法及示例(1)

📅  最后修改于: 2023-12-03 15:16:21.293000             🧑  作者: Mango

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

1. 简介

mark(int)方法是JavaCharArrayReader类的成员方法之一。它的作用是在当前位置设置一个标记,以备后续的读取操作进行“回退”使用。

2. 方法签名
public void mark(int readAheadLimit)
参数说明
  • readAheadLimit:标记读取字符的界限,即可以再次读取数据的字符数。
3. 示例

下面是一个使用mark(int)方法的示例代码:

public class CharArrayReaderDemo {
    public static void main(String[] args) throws IOException {
        char[] chars = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!', '!'};
        CharArrayReader charArrayReader = new CharArrayReader(chars);
        System.out.println(charArrayReader.read());

        // 标记当前位置:可以读取2个字符
        charArrayReader.mark(2);

        System.out.println(charArrayReader.read());
        System.out.println(charArrayReader.read());

        // 重置到标记位置
        charArrayReader.reset();

        System.out.println(charArrayReader.read());
        System.out.println(charArrayReader.read());
    }
}

运行结果:

72
101
108
101
108

解释下这个程序的运行流程:

  • 首先创建了一个char数组,包含了"Hello, World!!"这个字符串。
  • 使用CharArrayReader将字符数组包装成字符流。
  • 使用read()方法读取了字符流的第一个字符,即'H'
  • 使用mark()方法标记了当前位置,标记可以继续读取2个字符。
  • 使用两次read()方法读取了字符流的第二、三个字符,即'e''l'
  • 使用reset()方法重置读取位置到标记位置。
  • 使用两次read()方法再次读取了字符流的第二、三个字符,即'e''l'
4. 总结

本文介绍了Java中的CharArrayReader类的mark(int)方法,解释了该方法的作用以及用法,同时给出了一个使用示例。程序员在使用该方法时需要注意标记的读取界限,避免出现越界异常。