Java ByteArrayInputStream mark()方法

java.io.ByteArrayInputStream.mark(int readAheadLimit) 用于设置流中的当前标记位置。

1 语法

public void mark(int readAheadLimit)

2 参数

readLimit:这个整数值没有意义。

3 返回值

4 示例 

package com.yiidian;

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

public class Demo {
    public static void main(String[] args) throws IOException {
        byte[] buf = {65, 66, 67, 68, 69};
        ByteArrayInputStream bais = null;

        try {
            // create new byte array input stream
            bais = new ByteArrayInputStream(buf);

            // print bytes
            System.out.println("Byte read "+ bais.read());
            System.out.println("Byte read "+ bais.read());
            System.out.println("Byte read "+ bais.read());

            System.out.println("Mark() invocation");

            // mark() invocation;
            bais.mark(0);
            System.out.println("Byte read "+ bais.read());
            System.out.println("Byte read "+ bais.read());

            System.out.println("Reset() invocation");

            // reset() invocation
            bais.reset();
            System.out.println("Byte read "+ bais.read());
            System.out.println("Byte read "+ bais.read());

        } catch(Exception e) {
            // if I/O error occurs
            e.printStackTrace();
        } finally {
            if(bais!=null)
                bais.close();
        }
    }
}

输出结果为:

Byte read 65
Byte read 66
Byte read 67
Mark() invocation
Byte read 68
Byte read 69
Reset() invocation
Byte read 68
Byte read 69

热门文章

优秀文章