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

Java读取txt文件提示找不到文件且无法打印内容怎么解决?

问题修复方案

核心故障原因

  • 文件名重复拼接后缀:main方法中已经将用户输入的文件名拼接了.txt后缀再传入Maze构造方法,而构造方法内部又重复拼接了一次.txt,最终实际查找的文件名为xxx.txt.txt,和你实际存储的文件名不符,因此触发文件找不到的报错。

修复方法

1. 修正文件名拼接逻辑

修改Maze类的字符串参数构造方法中的文件读取逻辑,删除重复拼接.txt的代码:

public Maze(String filename) {
    Scanner infile = null;
    try {
        // 删掉原来的 + ".txt",因为外层已经拼接过后缀
        infile = new Scanner(new File(filename));
    }
    catch(Exception e) {
        System.out.println("File not found");
        return;
    }
    
    // 后续读取文件的原有逻辑保持不变
    maze = new char[infile.nextInt()][infile.nextInt()];
    for(int r = 0; r < maze.length; r++) {
        char[] line = infile.next().toCharArray();
        for(int c = 0; c < maze[0].length; c++) {
            maze[r][c] = line[c];
            if(maze[r][c] == START) {
                startRow = r;
                startCol = c;
            }
        }
    }
}

2. 功能验证

你原有代码中的display()方法本身已经实现了将文件内容打印到控制台的功能,只要文件读取正常,调用该方法即可输出完整的迷宫内容。

额外注意事项

  • 确保你的txt文件存放在项目运行的工作目录下(IDEA等IDE默认是项目根目录,和src文件夹同级;命令行运行的话是你执行java命令的当前目录)
  • 输入文件名时不要额外加.txt后缀,比如你的测试文件是maze1.txt,控制台输入maze1即可

内容的提问来源于stack exchange,提问作者StealthWar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:57:01