BufferedReader的readLine()方法不会阻塞直到缓冲区被填满。它会阻塞直到读取到一行完整的数据或者遇到文件末尾。
以下是一个示例代码,展示了如何使用BufferedReader的readLine()方法来逐行读取文件内容:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFile {
public static void main(String[] args) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader("file.txt"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
在上面的示例中,我们创建了一个BufferedReader对象,用于从文件中读取数据。然后,我们使用while循环和readLine()方法逐行读取文件的内容,直到读取到文件末尾(readLine()方法返回null)。每读取到一行数据,我们将其打印出来。
请注意,如果文件过大,可能会导致内存溢出或性能问题。在处理大文件时,可以考虑使用BufferedReader的lines()方法,它返回一个Stream