Java BufferedReader.reset()方法

原文:https://www.studytonight.com/java-file-io/java-bufferedreader-reset-method

在本教程中,我们将学习 Javabufferedeeder类的reset()方法。此方法的工作是将流重置到最近标记的位置,这使得同一字节再次可读。

句法

下面是这个方法的语法,这个方法不需要参数,也不返回值。

public void reset() throws IOException

示例 1:缓冲处理器复位()方法

在本例中,我们使用readLine()方法从流中读取行,然后在该点标记位置,之后我们调用 reset()方法,这样它会将流的位置重置到最近标记的位置,并再次从该点读取数据。

import java.io.BufferedReader;
import java.io.FileReader;
class StudyTonight
{
    public static void main(String[] args)  
    { 
        try 
        {
            FileReader    fileReader = new FileReader("E://studytonight//output.txt"); 
            BufferedReader buffReader = new BufferedReader(fileReader);

            System.out.println(buffReader.readLine());  
            buffReader.mark(1);  
            System.out.println(buffReader.readLine());  
            buffReader.reset();  
            System.out.println(buffReader.readLine());  

            fileReader.close();
            buffReader.close();            
        }
        catch(Exception e)
        {
            System.out.println("Error: "+e.toString());
        }
    } 
}

你好今晚学习 欢迎今晚学习 欢迎今晚学习

输出. txt

Hello studytonight
Welcome to studytonight

示例 2:缓冲处理器复位()方法

这里我们实现了 reset()方法,我们可以在下面给出的代码中看到,首先我们读取行,并通过调用 mark()方法标记位置,然后我们再次使用 readLine()方法读取这两行,在调用 reset()方法之后,它将标记流在最近标记位置的位置,并从该点开始读取。

import java.io.BufferedReader;
import java.io.FileReader;
class StudyTonight
{
    public static void main(String[] args)  
    { 
        try 
        {
            FileReader    fileReader = new FileReader("E://studytonight//output.txt"); 
            BufferedReader buffReader = new BufferedReader(fileReader);

            System.out.println(buffReader.readLine());  
            buffReader.mark(1);  
            System.out.println(buffReader.readLine());  
            System.out.println(buffReader.readLine());  
            System.out.println(buffReader.readLine());  
            System.out.println(buffReader.readLine());  
            buffReader.reset();
            System.out.println("After Calling the reset() method");
            System.out.println(buffReader.readLine());  
            System.out.println(buffReader.readLine());  
            System.out.println(buffReader.readLine());  
            fileReader.close();
            buffReader.close();            
        }
        catch(Exception e)
        {
            System.out.println("Error: "+e.toString());
        }
    } 
}

1 2 3 4 5 调用复位()方法后 2 3 4

输出. txt

1
2
3
4
5
6
7
8
9

结论

在本教程中,我们学习了 Javabufferedeeler类的reset()方法,该方法将流重置为最近的标记,如果标记的值已经无效或以前从未在流上标记过,则抛出异常。