You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 00:15:46