{Java} 文件存在但仍然显示 FileNotFoundException 错误

{Java} File exists but still showing FileNotFoundException Error

我需要将整数的 .txt 文件读入二维数组,但当我尝试读入该文件时,出现运行时错误,指出找不到指定的文件。这是我第一次尝试读取文件,所以我只需要有关如何操作的指导,但我找不到这个基本的答案。

我将名为 "num1.txt" 的整数文件保存在与我的 java 文件相同的文件夹中,所以我想知道我是否不明白 eclipse 和 java 决定文件在哪里。

public static void main(String[] args) throws FileNotFoundException
{
    int i;
    int j;

    i=0;
    j=0;
    int connect4Array[][] = new int[6][7];



    Scanner readFile = new Scanner(new File("num1.txt"));

    while(readFile.hasNextInt())
    {
        for(i=0;i<connect4Array.length;i++)
        {
        connect4Array[i++][j]=readFile.nextInt();
            for(j=0;j<connect4Array[j].length;j++)
            {
            connect4Array[i][j++]=readFile.nextInt();
            }
        }
    }

首先,这不是编译错误。这是一个 运行 时间错误。你需要了解其中的区别......并说出正确的话,否则人们不会理解你在说什么。


I have the file of integers named "num1.txt" saved in the same folder as as my java file.

问题是您正在尝试访问 运行ning 应用程序当前目录中的文件...但当前目录不是您认为/希望的位置。

那么应用程序的当前目录在哪里?就看你怎么运行申请了!

  • 如果您 运行 来自 shell 的 java 应用程序,则当前目录将默认为 shell 的当前目录。

    您可以在 运行 java ... 之前通过 cd-ing 更改它,我认为您也可以使用 -Duser.dir=<pathname>.

    [ 来指定它=35=]
  • 如果您从 Eclipse 运行 java 应用程序,则当前目录将默认为项目目录。这可能与包含源代码的目录不同。

    您可以在 Eclipse 设置中为应用程序的启动器指定不同的当前目录。


或者,使用文件的绝对路径,或将其放入应用程序的 JAR 文件中并作为 "resource".

读取

将文件移动到 src 文件夹所在的位置。

因为默认是您工作区中的项目目录。

您可以使用 getProperty 来检查当前目录。

String CurrentDir = System.getProperty("user.dir"); System.out.println("Current working directory : " + CurrentDir);