Java StringReader mark()方法

java.io.StringReader.mark(int readAheadLimit) 方法标记流中的当前位置。后续调用reset()将重新定位流到这一点。

1 语法

public void mark(int readAheadLimit)

2 参数

readAheadLimit:在仍保留该标记的情况下被读取的字符数限制。因为流的输入来自一个字符串,没有实际的限制,所以这个参数必须不为负,否则忽略。

3 返回值

4 示例 

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * java.io.StringReader.mark(int readAheadLimit)方法的例子
 */
import java.io.*;

public class Demo {
    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

热门文章

优秀文章