Java BufferedReader mark()方法与示例

BufferedReader类mark()方法

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

  • mark()方法用于标记此流中的当前位置,并且每当我们调用reset()method时,它都会将流重置为给定点(read_from_here)。

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

  • 设置限制时,mark()方法可能会引发异常。

    • IllegalArgumentException:如果给定参数为负,则可能引发此异常。

    • IOException:执行输入/输出操作时可能会抛出此异常。

语法:

    public void mark(int read_from_here);

参数:

  • int read_from_here –表示mark()保留期间要读取的字节数。

返回值:

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

示例

//Java程序演示示例 
// 标记(int read_from_here)方法 
//BufferedReader-

import java.io.*;

public class MarkBR {
    public static void main(String[] args) throws Exception {
        //打开文本文件 
        //FileInputStream-
        FileInputStream fis = new FileInputStream("e:/includehelp.txt");

        //实例化InputStreamReader- 
        InputStreamReader inp_r = new InputStreamReader(fis);

        //实例化BufferedReader- 
        BufferedReader buff_r = new BufferedReader(inp_r);

        //从流中读取字符
        char ch1 = (char) buff_r.read();
        char ch2 = (char) buff_r.read();
        char ch3 = (char) buff_r.read();

        System.out.println("ch1: " + ch1);
        System.out.println("ch2 : " + ch2);

        //通过使用mark()方法isto-
        //设置限制的字节数
        //被阅读 
        System.out.println("buff_r.mark(5): ");
        buff_r.mark(5);
        System.out.println("ch3: " + ch3);

        //重置流
        System.out.println("buff_r.reset(): ");
        buff_r.reset();

        //从书架上读取
        char ch4 = (char) buff_r.read();
        char ch5 = (char) buff_r.read();

        //显示字符
        System.out.println("ch4: " + ch4);
        System.out.println("ch5: " + ch5);

        fis.close();
        inp_r.close();
        buff_r.close();
    }
}

输出结果

ch1: H
ch2 : e
buff_r.mark(5):
ch3: l
buff_r.reset():
ch4: l
ch5: o