Java 系统找不到该文件

Java 系统找不到该文件,java,file-io,Java,File Io,我正在使用Scanner库构建一个文件读取器,我遵循了库中的大纲,它编译得很好,但是当我运行它时,我得到一个FileNotFoundException:text.txt(系统找不到指定的文件)。该文件与.java文件位于同一文件夹中,但它仍然表示它不在那里 下面是代码,我有任何帮助将是伟大的 import java.util.*; import java.io.*; class Conjecture { public static void main(String[] args) throw

我正在使用Scanner库构建一个文件读取器,我遵循了库中的大纲,它编译得很好,但是当我运行它时,我得到一个FileNotFoundException:text.txt(系统找不到指定的文件)。该文件与.java文件位于同一文件夹中,但它仍然表示它不在那里

下面是代码,我有任何帮助将是伟大的

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

class Conjecture {

public static void main(String[] args) throws IOException {

    Scanner scanner = null;

    try {
        scanner = new Scanner(new BufferedReader(new FileReader("text.txt")));

        while (scanner.hasNext()) {
            System.out.println(scanner.next());
        }
    } finally {
        if (scanner != null) {
            scanner.close();
            System.out.println("done");
        }
    }
}

}

您的文件需要位于运行时JVM的工作目录中。如果对此不确定,可以执行以下操作:

File file = new File(".");
System.out.println(file.getAbsolutePath());

您需要将文件放在与.class相同的目录中,而不是.java。从IDE编译时,.class文件通常放在生成目录中。正如Kevin所建议的,使用绝对路径也可以工作,或者将文件作为资源添加到jar文件并将其作为资源加载。

出于调试目的,打印文件的规范路径:

File file = new new File("text.txt");
System.out.println(file.getCanonicalPath());

因此,您可以查看文件的位置

您可以使用file类获取“text.txt”的绝对路径找出java在哪里寻找那个文件。如果你把文件移动到你的工作区文件夹,你是否从一个IDE运行,它肯定会工作。考虑使用新的NiO 2文件API,并在处理文件时尝试资源。几周前,我在一个类似的项目中使用stdlib,但忘记了该文件需要在workfolder中,而不是包含.java文件的默认包中。