Java实现批量读取并打印文本文件每3行内容的需求求助
Java实现按3行一组读取并打印文本文件内容
实现思路
- 用
BufferedReader逐行读取文本,它适合处理文本行读取,效率较高 - 循环每次读取3行作为一组,打印后用空行分隔不同组(注意最后一组后不额外输出空行)
- 用try-with-resources自动管理文件流,避免手动关闭流的麻烦,同时处理文件读取时的异常
完整代码示例
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class ThreeLineReader { public static void main(String[] args) { // 替换成你的实际文件路径,比如 "./messages.txt" 或者 "D:/docs/test.txt" String filePath = "your-file-path.txt"; // try-with-resources:自动关闭BufferedReader,无需手动调用close() try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { String line1, line2, line3; boolean isFirstGroup = true; // 标记第一组,避免开头输出空行 // 循环读取每组的3行,直到文件结束 while ((line1 = reader.readLine()) != null) { // 读取当前组的第2、3行 line2 = reader.readLine(); line3 = reader.readLine(); // 非第一组时,先打印空行分隔 if (!isFirstGroup) { System.out.println(); } isFirstGroup = false; // 打印当前组的内容,处理文件行数不是3的倍数的情况 System.out.println(line1); if (line2 != null) { System.out.println(line2); } if (line3 != null) { System.out.println(line3); } } } catch (IOException e) { // 捕获并处理文件读取异常 System.err.println("读取文件出错: " + e.getMessage()); e.printStackTrace(); } } }
关键细节说明
- 文件路径替换:把代码里的
your-file-path.txt改成你实际的文件路径,Windows路径注意用/或者转义的\\(比如"C:\\test\\file.txt") - try-with-resources优势:Java 7及以上版本支持,自动关闭文件流,不用手动写
finally块关闭资源,避免资源泄漏 - 处理非3倍数行数:如果文件总行数不是3的倍数(比如7行),最后一组的第2、3行可能为
null,代码里加了非空判断,不会输出null - 空行分隔逻辑:用
isFirstGroup标记,确保第一组前没有空行,后续每组前输出空行,不会在最后多打一个空行
内容的提问来源于stack exchange,提问作者Killua11
相关产品推荐
相关产品推荐

