【问题标题】:Why do I get an error saying that the program can't find my text file [duplicate]为什么我收到错误消息说程序找不到我的文本文件[重复]
【发布时间】:2026-02-18 09:20:04
【问题描述】:

我只是想制作一个非常基本的 java 程序来读取文件。但是我得到它找不到我的文件的错误: Exception in thread "main" java.io.FileNotFoundException: read.txt (The system cannot find the file specified) 我查了一下,我的文件名没有拼错,而且文件已经和程序在同一个文件目录下。 代码如下:

import java.io.*;
import java.util.*;

public class save_files {
    public static void main(String[] args) throws FileNotFoundException {

        File file = new File("read.txt");
        Scanner scanner = new Scanner(file);
        String line = scanner.nextLine();
        System.out.println(line);

    }
}

【问题讨论】:

  • 将文件放在项目根文件夹中以使其工作。
  • 尝试将文本文件的完整路径放在那里,看看您的代码是否有效。 :)
  • @SureshAtta 根文件夹是什么意思?
  • @arcanium0611 是的,谢谢你的工作,但是有没有更简单的方法可以做到这一点,因为我也在 python 中编码并且知道如果它在同一个文件目录中,你只需要放置文件
  • 如果您在 eclipse 或 intelliJ 中工作,请尝试通过 IDE 将文件添加到您的项目中。这通常对我有用。

标签: java


【解决方案1】:

“read.txt”是一个相对文件路径,相对于“工作目录”。请务必指定相对于工作目录的路径。

看到这个答案: How does Java resolve a relative path in new File()?

【讨论】:

    【解决方案2】:

    我的建议是先尝试文件的绝对路径。如果您的代码有效(它应该有效),那么您的问题是相对路径,这也取决于您运行代码的方式。

    如果您使用的是 NetBeans 或 Eclipse 之类的东西,如果您的文件位于项目的根目录中,您的代码就可以工作。如果您的项目名为Foo,您的目录可能如下所示:

    Foo
    |- build
    |- nbproject
    |- src
    |- test
    |- build.xml
    |- manifest.mf
    |- read.txt
    

    否则,如果您正在执行类似从命令行运行.jar 的操作,“在哪里可以找到 read.txt”的上下文将取决于您的工作目录。如果路径是文字(您的情况),它将查看工作目录。

    【讨论】: