Java java.io.BufferedInputStream.mark() 方法

  • 描述

    java.io.BufferedInputStream.mark(int)方法设置在标记位置无效之前要读取的int值限制的字节数。
  • 声明

    以下是java.io.BufferedInputStream.mark()方法的声明。
     public void mark(int readlimit)
  • 参数

    readLimit标记位置无效之前要读取的字节数。
  • 返回值

    此方法不返回任何值。
  • 异常

    不适用
  • 例子

    以下示例显示java.io.BufferedInputStream.mark()方法的用法。
     package com.jc2182; 
    import java.io.BufferedInputStream;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    
    public class BufferedInputStreamDemo {
       public static void main(String[] args) throws Exception {
          InputStream iStream = null;
          BufferedInputStream bis = null;
          
          try {
             // read from file c:/test.txt to input stream        
             iStream = new FileInputStream("c:/test.txt");
             
             // input stream converted to buffered input stream
             bis = new BufferedInputStream(iStream);
             
             // read and print characters one by one
             System.out.println("Char : "+(char)bis.read());
             System.out.println("Char : "+(char)bis.read());
             System.out.println("Char : "+(char)bis.read());
             
             // mark is set on the input stream
             bis.mark(0);
             System.out.println("Char : "+(char)bis.read());
             System.out.println("reset() invoked");
             
             // reset is called
             bis.reset();
             
             // read and print characters
             System.out.println("char : "+(char)bis.read());
             System.out.println("char : "+(char)bis.read());
    
          } catch(Exception e) {
             e.printStackTrace();
          } finally {
             // releases any system resources associated with the stream
             if(iStream!=null)
                iStream.close();
             if(bis!=null)
                bis.close();   
          }
       }
    }
    
    假设我们有一个文本文件c:/test.txt ,其内容如下。该文件将用作示例程序的输入-
     ABCDE
    让我们编译并运行以上程序,这将产生以下结果-
     Char : A
    Char : B
    Char : C
    Char : D
    reset() invoked
    char : D
    char : E