举例说明bufferedreader mark reset的用法
时间: 2024-04-30 12:20:16 浏览: 84
BufferedReader类是Java中用于读取字符流的常用类,它提供了mark(int readAheadLimit)和reset()方法,用于标记和重置读取位置。
举个例子,假设我们有一个文本文件,其中内容如下:
```
Hello World
My name is John
Nice to meet you
```
我们想要读取这个文件的内容,并在读到"Nice to meet you"这句话时回到"Hello World"这句话的位置重新读取。可以使用BufferedReader的mark和reset方法来实现。
示例代码如下:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class BufferedReaderExample {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader("example.txt"));
reader.mark(100); // 标记当前位置,readAheadLimit参数表示可以再次读取的字符数,本例中设置为100
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
if (line.contains("Nice to meet you")) {
reader.reset(); // 重新回到mark的位置
break;
}
}
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
}
}
```
输出结果如下:
```
Hello World
My name is John
Nice to meet you
Hello World
My name is John
Nice to meet you
```
可以看到程序首先输出了整个文件的内容,然后在读到"Nice to meet you"这句话时重新回到了"Hello World"这句话的位置并重新读取了一遍。最终输出了整个文件的内容两遍。
阅读全文