Java BufferedReader.mark()
方法
原文:https://www.studytonight.com/java-file-io/java-bufferedreader-mark-method
在本教程中,我们将学习 Java 中 BufferReader 类的mark()
方法。此方法标记缓冲区读取器流中的当前位置。一旦这个方法被调用,同一个 BufferedReader 类的reset()
方法随后被调用,这将流重置到最近的点。
句法
下面是这个方法的语法,其参数是readAheadLimit
,表示在标记无效之前可以读取的最大字符数。该方法的返回类型为void
。
public void mark(int readAheadLimit) throws IOException
示例 1:缓冲恐惧者标记()方法
在这个例子中,我们正在实现mark()
方法,首先我们从BufferedReader
读取数据,然后调用mark()
a 方法,这样我们就可以稍后从这个位置检索数据,我们再次开始读取数据。当我们调用 reset()方法时,它将通过mark()
方法在最近标记的位置设置流的位置,我们将从该位置开始读取数据。
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:缓冲恐惧者标记()方法
在这个例子中,我们通过调用 mark()方法来标记流中的位置,这样我们就可以在需要的时候从这些位置开始读取数据,这里我们首先读取数据并标记()位置。当我们调用 reset()方法时,它将通过mark()
方法将流的位置设置在最近标记的位置,我们将从该位置开始读取数据。
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
结论
在本教程中,我们学习了 Java 中buffere reader类的mark()
方法,该方法标记了缓冲区读取器流中的当前位置,而同一个类的reset()
方法将该流固定在这一点上。