📅  最后修改于: 2023-12-03 15:16:21.293000             🧑  作者: Mango
mark(int)
方法是Java
中CharArrayReader
类的成员方法之一。它的作用是在当前位置设置一个标记,以备后续的读取操作进行“回退”使用。
public void mark(int readAheadLimit)
readAheadLimit
:标记读取字符的界限,即可以再次读取数据的字符数。下面是一个使用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'
。本文介绍了Java
中的CharArrayReader
类的mark(int)
方法,解释了该方法的作用以及用法,同时给出了一个使用示例。程序员在使用该方法时需要注意标记的读取界限,避免出现越界异常。