当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java BufferedReader mark()用法及代码示例


Java中BufferedReader类的mark()方法用于标记缓冲区读取器流中的当前位置。在调用mark()方法之后,也将随后调用同一BufferedReader类的reset()方法。 reset()方法将位置固定在最后标记的位置,以便可以再次读取相同的字节。

用法:

public void mark(int readAheadLimit) 
                   throws IOException

覆盖:覆盖Reader类的mark()方法。

参数:此方法接受Integer类型的readAheadLimit,它表示在标记位置变为无效之前可以读取的最大字节数限制。

返回值:此方法不返回任何值。



异常:此方法可以引发两种类型的异常。

  • IllegalArgumentException-如果传递的参数readAheadLimit小于零,则抛出此异常。
  • IOException-如果发生I /O错误,则抛出此异常。

以下示例程序旨在说明IO包中BufferedReader类中的mark()方法。
程序1:假设存在文件“c:/demo.txt”。

// Java program to illustrate 
// BufferedReader mark() method 
  
import java.io.*; 
  
public class GFG { 
    public static void main(String[] args) 
    { 
  
        // Read the stream 'demo.txt' 
        // for containing text "GEEKS" 
        FileReader fileReader 
            = new FileReader( 
                "c:/demo.txt"); 
  
        // Convert fileReader to 
        // bufferedReader 
        BufferedReader buffReader 
            = new BufferedReader( 
                fileReader); 
  
        // Read and print characters 
        // one by one 
        System.out.println( 
            "Char:"
            + (char)buffReader.read()); 
        System.out.println( 
            "Char:"
            + (char)buffReader.read()); 
        System.out.println( 
            "Char:"
            + (char)buffReader.read()); 
  
        // Mark is set on the stream 
        buffReader.mark(0); 
  
        System.out.println( 
            "Char:"
            + (char)buffReader.read()); 
  
        // Reset() is invoked 
        buffReader.reset(); 
  
        // Read and print characters 
        System.out.println( 
            "Char:"
            + (char)buffReader.read()); 
        System.out.println( 
            "Char:"
            + (char)buffReader.read()); 
    } 
}
输出:
Char:G
Char:E
Char:E
Char:K
Char:K
Char:S

程序2:假设存在文件“c:/demo.txt”。

// Java program to illustrate 
// BufferedReader mark() method 
  
import java.io.*; 
public class GFG { 
    public static void main(String[] args) 
    { 
  
        // Read the stream 'demo.txt' 
        // containing text "GEEKSFORGEEKS" 
        FileReader fileReader 
            = new FileReader( 
                "c:/demo.txt"); 
  
        // Convert fileReader to 
        // bufferedReader 
        BufferedReader buffReader 
            = new BufferedReader( 
                fileReader); 
  
        // Read and print characters 
        // one by one 
        System.out.println( 
            "Char:"
            + (char)buffReader.read()); 
        System.out.println( 
            "Char:"
            + (char)buffReader.read()); 
        System.out.println( 
            "Char:"
            + (char)buffReader.read()); 
        System.out.println( 
            "Char:"
            + (char)buffReader.read()); 
  
        // Mark is set on the stream 
        buffReader.mark(0); 
  
        System.out.println( 
            "Char:"
            + (char)buffReader.read()); 
  
        // Reset() is invoked 
        buffReader.reset(); 
  
        // read and print characters 
        System.out.println( 
            "Char:"
            + (char)buffReader.read()); 
        System.out.println( 
            "Char:"
            + (char)buffReader.read()); 
        System.out.println( 
            "Char:"
            + (char)buffReader.read()); 
        System.out.println( 
            "Char:"
            + (char)buffReader.read()); 
    } 
}
输出:
Char:G
Char:E
Char:E
Char:K
Char:S
Char:S
Char:F
Char:O
Char:R

参考文献:
https://docs.oracle.com/javase/10/docs/api/java/io/BufferedReader.html#mark(int)




相关用法


注:本文由纯净天空筛选整理自pp_pankaj大神的英文原创作品 BufferedReader mark() method in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。