Java CharArrayReader.标记()
方法
原文:https://www.studytonight.com/java-file-io/java-chararrayreader-mark-method
在本教程中,我们将学习 Java 中 CharArrayReader 类的mark()
方法。该方法的工作是标记点的位置,从该位置开始读取流,调用reset()
会再次将流带到mark()
方法定位的点。
句法
这是此方法的语法,其中标记有效时可读取的最大字符数作为参数传递。此方法不返回任何值。
public void mark(int readAheadLimit)
示例 1:使用 CharArrayReader 标记位置
在这个例子中,我们将说明如何使用mark()
方法来设置流中的位置标记,这里我们首先从字符数组中读取数据,然后调用mark()
并再次读取数据,但是当我们调用reset()
方法时,它使位置成为最近标记的位置,因此它将再次从该点开始读取。
import java.io.CharArrayReader;
class StudyTonight
{
public static void main(String[] args)
{
try
{
char[] arr = {'s', 't', 'u', 'd', 'y', 't', 'o', 'n', 'i', 'g', 'h', 't'};
char c;
CharArrayReader reader = new CharArrayReader(arr);
c=(char)reader.read();
System.out.println(c);
reader.mark(1);
c=(char)reader.read();
System.out.println(c);
reader.reset();
c=(char)reader.read();
System.out.println(c);
reader.close();
}
catch(Exception e)
{
System.out.println("Error: "+e.toString());
}
}
}
s t t
示例 2:使用 CharArrayReader 标记位置
这里我们用 mark()方法实现了一个有趣的例子,我们一个接一个地调用 mark()和 reset()方法,reset()方法将流的位置移动到最后一个标记的位置,这里最后一个标记的位置只是最近的位置,所以很明显它不会在输出中显示任何差异。
import java.io.CharArrayReader;
class StudyTonight
{
public static void main(String[] args)
{
try {
char[] arr = {'S', 't', 'u', 'd', 'y', 't', 'o', 'n', 'i', 'g', 'h', 't'};
CharArrayReader reader = new CharArrayReader(arr);
int ch;
for (int i = 0; i < 5; i++) {
ch = reader.read();
System.out.print((char)ch);
}
System.out.println();
reader.mark(1);
reader.reset();
for (int i = 0; i < 7; i++)
{
ch = reader.read();
System.out.print((char)ch);
}
}
catch (Exception e)
{
System.out.println("Error: "+e.toString());
}
}
}
今晚学习
结论
在本教程中,我们学习了 Java 中 CharArrayReader 类的mark()
方法,该方法用于指定如果在流中调用reset()
方法,将从哪个位置开始流读取。