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

时间:2015-02-28 06:38:17

标签: java filenotfoundexception

我需要将一个整数的.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();
            }
        }
    }

2 个答案:

答案 0 :(得分:1)

首先,它不是编译错误。这是一个运行时错误。你需要了解差异......并说出正确的事情,否则人们不会理解你在说什么。


  

我有一个名为&#34; num1.txt&#34;的整数文件。保存在与我的java文件相同的文件夹中。

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

那么应用程序的当前目录在哪里?这取决于你运行应用程序的方式!

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

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

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

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


或者,使用文件的绝对路径,或将其放入应用程序的JAR文件中,并将其作为&#34;资源&#34;。

答案 1 :(得分:0)

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

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

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

String CurrentDir = System.getProperty(&#34; user.dir&#34;);  System.out.println(&#34;当前工作目录:&#34; + CurrentDir);