Java CharArrayReader.标记()方法

原文:https://www.studytonight.com/java-file-io/java-chararrayreader-mark-method

在本教程中,我们将学习 JavaCharArrayReader 类的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()); 
        } 
    } 
}

今晚学习

结论

在本教程中,我们学习了 JavaCharArrayReader 类的mark()方法,该方法用于指定如果在流中调用reset()方法,将从哪个位置开始流读取。