Java.io.StringReader.mark()方法實例
java.io.StringReader.mark(int readAheadLimit) 方法標記流中的當前位置。後續調用reset()將重新定位流到這一點。
聲明
以下是java.io.StringReader.mark()方法的聲明
public void mark(int readAheadLimit)
參數
-
readAheadLimit -- 在仍保留該標記的情況下被讀取的字符數限製。因為流的輸入來自一個字符串,冇有實際的限製,所以這個參數必須不為負,否則忽略。
返回值
此方法不返回任何值。
異常
-
IllegalArgumentException -- 如果readAheadLimit < 0
-
IOException -- 如果發生I/O錯誤。
例子
下麵的示例演示java.io.StringReader.mark()方法的用法。
package com.yiibai; import java.io.*; public class StringReaderDemo { public static void main(String[] args) { String s = "Hello World"; // create a new StringReader StringReader sr = new StringReader(s); try { // read the first five chars for (int i = 0; i < 5; i++) { char c = (char) sr.read(); System.out.print("" + c); } // mark the reader at position 5 for maximum 6 sr.mark(6); // read the next six chars for (int i = 0; i < 6; i++) { char c = (char) sr.read(); System.out.print("" + c); } // reset back to marked position sr.reset(); // read again the next six chars for (int i = 0; i < 6; i++) { char c = (char) sr.read(); System.out.print("" + c); } // close the stream sr.close(); } catch (IOException ex) { ex.printStackTrace(); } } }
讓我們編譯和運行上麵的程序,這將產生以下結果:
Hello World World