Java Java.io.InputStream.mark() 方法

  • 描述

    java.io.InputStream.mark(int readlimit)方法标记此输入流中的当前位置。随后对reset()方法的调用将流重新定位到最近标记的位置。
  • 声明

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

    readlimit在标记位置变为无效之前可以读取的最大字节数。
  • 返回值

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

    不适用
  • 例子

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