Java FilterReader.mark(int readAheadLimit)方法範例

2019-10-16 22:13:33

FilterReader.mark(int readAheadLimit)方法範例

FilterReader.mark(int readAheadLimit)具有以下語法。

public void mark(int readAheadLimit)  throws IOException

範例

在下面的程式碼中展示了如何使用FilterReader.mark(int readAheadLimit)方法。

import java.io.FilterReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;

public class Main {// copyright WW w .y I  ibA i .C O  m 
  public static void main(String[] args) throws Exception {

    Reader r = new StringReader("ABCDEF");

    // create new filter reader
    FilterReader fr = new FilterReader(r) {};

    // reads and prints FilterReader
    System.out.println((char) fr.read());
    System.out.println((char) fr.read());

    // mark invoked at this position
    fr.mark(0);
    System.out.println("mark() invoked");
    System.out.println((char) fr.read());
    System.out.println((char) fr.read());

    // reset() repositioned the stream to the mark
    fr.reset();
    System.out.println("reset() invoked");
    System.out.println((char) fr.read());
    System.out.println((char) fr.read());

  }
}

上面的程式碼生成以下結果。

A
B
mark() invoked
C
D
reset() invoked
C
D