BufferedReader如何读取上一行
时间: 2023-12-21 09:51:09 浏览: 281
您可以使用BufferedReader类的readLine()方法来读取文件的每一行,并且使用mark()和reset()方法来返回上一行。具体代码如下:
```java
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
String line = null;
while ((line = reader.readLine()) != null) {
if (line.startsWith("test")) {
reader.mark(100); // 设置当前位置为mark位置 记录一下当前位置
} else if (line.startsWith("end")) {
reader.reset(); // 返回上一个mark位置的位置
String previousLine = reader.readLine();
System.out.println("Previous line: " + previousLine);
}
}
```
注意:该方法需要先读取下一行才能返回上一行,因为mark()方法记录的是当前位置。
相关问题
BufferedReader 读取第一行并获取列数
可以使用以下代码读取第一行并获取列数:
```java
try {
BufferedReader reader = new BufferedReader(new FileReader("filename.txt"));
String line = reader.readLine();
int numColumns = line.split(",").length;
System.out.println("Number of columns: " + numColumns);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
```
其中,"filename.txt" 是要读取的文件名,假设文件中使用逗号分隔数据。首先使用 BufferedReader 读取第一行数据,然后使用 split() 方法将其拆分为一个字符串数组,并使用 length 属性获取数组长度,即为列数。最后记得关闭 BufferedReader。
BufferedReader读取特定行
可以通过循环逐行读取文本文件,并在循环中使用计数器来确定读取特定行。以下是一个示例代码:
```java
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
String line;
int count = 0;
while ((line = br.readLine()) != null) {
count++;
if (count == 5) { // 读取第5行
System.out.println(line);
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
```
在上面的代码中,我们使用 `BufferedReader` 和 `FileReader` 类读取文件的内容。在循环中,我们使用 `readLine()` 方法逐行读取文件的内容,并使用计数器 `count` 来记录当前读取的行数。当计数器 `count` 的值等于我们想要读取的特定行数时,我们输出该行的内容并退出循环。
阅读全文