Java终端程序实现按回车逐行显示文件内容的方法问询
解决方案
问题分析
你的代码目前会一次性读取并输出文件所有内容,缺少等待用户按下回车再显示下一行的交互逻辑,同时还存在文件名拼写错误(代码里写的是name.txt,实际文件是names.txt),空catch块也不利于排查问题。
修正后的代码
import java.util.Scanner; import java.io.File; import java.util.ArrayList; import java.util.List; import java.io.FileNotFoundException; public class Enter { public static void main(String[] args) { // 先读取文件所有行到列表中 List<String> names = new ArrayList<>(); try (Scanner fileScanner = new Scanner(new File("names.txt"))) { while (fileScanner.hasNextLine()) { names.add(fileScanner.nextLine()); } } catch (FileNotFoundException e) { // 替换空catch,打印异常信息方便排查 System.err.println("找不到文件: " + e.getMessage()); return; } // 控制台交互:按回车显示下一行 try (Scanner inputScanner = new Scanner(System.in)) { for (String name : names) { System.out.println(name); // 等待用户按下回车 inputScanner.nextLine(); } } } }
关键修改点
- 文件名修正:把
name.txt改为names.txt,避免文件找不到的错误。 - 预读取所有行:先将文件内容全部读取到
List中,方便后续逐行控制输出。 - 控制台交互逻辑:新增一个
Scanner读取用户输入,每输出一行后调用inputScanner.nextLine()等待用户按下回车。 - 异常处理优化:空catch块改为打印错误信息,方便排查文件路径或名称错误。
- 自动关闭资源:使用
try-with-resources语法,无需手动关闭Scanner,更安全。
运行效果
程序启动后,首先显示第一行Mike John,按下回车键后显示Johnny Apple,以此类推,直到所有行输出完毕。
内容的提问来源于stack exchange,提问作者Hunter Treleaven
相关产品推荐
相关产品推荐

