Java CharArrayReader mark()方法与示例

CharArrayReader类mark()方法

  • mark()方法在java.io包中可用。

  • mark()方法用于标记流中的当前位置,并在每次调用reset()方法时将其重置,以将流重置为由mark()方法的最新调用设置的位置。

  • mark()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。

  • mark()方法在标记流时可能会引发异常。
    IOException:如果给定参数无效,则可能引发此异常。

语法:

    public void mark(int r_limit);

参数:

  • int r_limit –表示保留标记时可以读取的字符数限制。

返回值:

该方法的返回类型为void,不返回任何内容。

示例

// Java程序演示示例 
空隙标记的//(INT r_limit)的方法 
// CharArrayReader-

import java.io.*;

public class MarkOfCAR {
 public static void main(String[] args) {

  CharArrayReader car_stm = null;
  char[] c_arr = {
   'a',
   'b',
   'c',
   'd'
  };

  try {
   //实例化CharArrayReader-
   car_stm = new CharArrayReader(c_arr);

   //通过使用read()isto方法 
   //从car_stm中读取字符
   int i1 = car_stm.read();
   int i2 = car_stm.read();
   int i3 = car_stm.read();
   int i4 = car_stm.read();

   System.out.println("i1: " + i1);

   //通过使用mark()isto方法
   //在此设置当前位置
   // car_stm-
   System.out.println("car_stm.mark(0): ");
   car_stm.mark(0);
   System.out.println("i2: " + i2);
   System.out.println("i3: " + i3);

   //通过使用reset()isto方法
   //将流重置到位置 
   //通过调用mark()方法设置
   System.out.println("car_stm.reset(): ");
   car_stm.reset();
   System.out.println("i2: " + i2);
   System.out.println("i3: " + i3);
   System.out.println("i4: " + i4);


  } catch (IOException e) {
   System.out.print("Stream closed!!!!");
  } finally {

   //释放所有链接的系统资源
   //关闭后与流一起
   //流
   if (car_stm != null)
    car_stm.close();
  }
 }
}

输出结果

i1: 97
car_stm.mark(0): 
i2: 98
i3: 99
car_stm.reset(): 
i2: 98
i3: 99
i4: 100