bufferedreader 的 readline() 是最常用的按行读取文本方式,需包装 reader(如 filereader、inputstreamreader),返回不含换行符的字符串,末尾返回 null;空行返回 "";推荐 try-with-resources 自动关闭资源。

BufferedReader 的 readLine() 是最常用的按行读取文本方式,核心是配合输入流(如 FileReader、InputStreamReader)使用,每次调用返回一行字符串(不含换行符),读到末尾返回 null。
创建 BufferedReader 实例
不能直接 new BufferedReader(),必须传入一个 Reader 对象。常见组合有:
- 读文件:用 FileReader 包装文件路径 → 再用 BufferedReader 包装它
- 读标准输入(如控制台):用 InputStreamReader(System.in) → 再包装成 BufferedReader
- 读网络流或其它字节流时:先用 InputStreamReader 转为字符流,再套 BufferReader
用 while 循环 + readLine() 安全读取
readLine() 返回 String,读完最后一行后返回 null,所以典型写法是:
try (BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line); // 处理每一行
}
} catch (IOException e) {
e.printStackTrace();
}
注意括号里的赋值+判空写法,这是 Java 中惯用的安全模式,避免多调一次 readLine() 导致跳过某行。
readLine() 的行为细节
它会自动识别 \n、\r\n、\r 等常见换行符,并把它们去掉,只返回纯文本内容;空行会返回空字符串 "",不是 null;如果某行特别长,只要内存够,它也能完整读出(内部缓冲区默认 8KB,可指定大小)。
别忘了关闭资源或用 try-with-resources
BufferedReader 实现了 AutoCloseable,推荐用 try-with-resources 自动释放底层流。手动调用 close() 也可以,但容易遗漏或异常时未执行。不用 close 可能导致文件句柄泄漏,尤其在频繁读文件的程序中。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











