void mark(int readAheadLimit)


描述

所述java.io.CharArrayReader.mark(INT readAheadLimit)方法标记流中的当前位置。调用reset()会将流重新定位到此点。

声明

以下是java.io.CharArrayReader.mark(int readAheadLimit)方法的声明

public void mark(int readAheadLimit)

参数

readAheadLimit - 该参数设置保留标记时可读取的字符数限制。由于流的输入来自字符数组,因此没有实际限制,因此通常会忽略该参数。

返回值

该方法不返回任何值。

异常

IOException - 如果发生I / O错误。

实例

以下示例显示了java.io.CharArrayReader.mark(int readAheadLimit)方法的用法。

package com.tutorialspoint;

  import java.io.CharArrayReader;
  import java.io.IOException;

  public class CharArrayReaderDemo {
     public static void main(String[] args) {      CharArrayReader car = null;
        char[] ch = {'A', 'B', 'C', 'D', 'E'};

        try {
           // create new character array reader
           car = new CharArrayReader(ch);

           // read and print the characters from the stream
           System.out.println(car.read());
           System.out.println(car.read());

           // mark() is invoked at this position
           car.mark(0);
           System.out.println("Mark() is invoked");
           System.out.println(car.read());
           System.out.println(car.read());

           // reset() is invoked at this position
           car.reset();
           System.out.println("Reset() is invoked");
           System.out.println(car.read());
           System.out.println(car.read());
           System.out.println(car.read());

        } catch(IOException e) {
           // if I/O error occurs
           System.out.print("Stream is already closed");
        } finally {
           // releases any system resources associated with the stream
           if(car!=null)
              car.close();
        }
     }
  }

让我们编译并运行上面的程序,这将产生以下结果

65
  66
  Mark() is invoked
  67
  68
  Reset() is invoked
  67
  68
  69