java 文件读到尾后如何重头读取
时间: 2023-09-26 17:11:31 浏览: 175
在 Java 中,可以使用 java.io.BufferedReader 类来读取文件。该类提供了一个方法叫做 reset(),该方法可以将 BufferedReader 对象的指针重新指向文件的开头,从而实现重头读取文件的目的。
以下是一个示例代码:
```
try {
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
String line;
while ((line = br.readLine()) != null) {
// 处理文件内容
}
br.reset(); // 将指针重新指向文件开头
while ((line = br.readLine()) != null) {
// 重头处理文件内容
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
```
在上述代码中,首先使用 BufferedReader 类读取文件的内容,然后使用 reset() 方法将指针重新指向文件开头,最后再次读取文件的内容。请注意,reset() 方法只能在 mark() 方法之后才能调用,因此在使用 reset() 方法之前需要先调用 mark() 方法来设置标记位置。
以下是一个使用 mark() 方法和 reset() 方法的示例代码:
```
try {
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
String line;
br.mark(0); // 设置标记位置为文件开头
while ((line = br.readLine()) != null) {
// 处理文件内容
}
br.reset(); // 将指针重新指向标记位置(即文件开头)
while ((line = br.readLine()) != null) {
// 重头处理文件内容
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
```
在上述代码中,首先使用 mark() 方法设置标记位置为文件开头,然后使用 reset() 方法将指针重新指向标记位置,最后再次读取文件的内容。请注意,在 mark() 方法中传入的参数表示标记位置的最大字符数,如果文件的大小超过了该值,则标记位置将失效。
阅读全文