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.yiibai; 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