Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 即使文件存在,FileNotFoundException仍然存在_Java_Java.util.scanner_Filenotfoundexception - Fatal编程技术网

Java 即使文件存在,FileNotFoundException仍然存在

Java 即使文件存在,FileNotFoundException仍然存在,java,java.util.scanner,filenotfoundexception,Java,Java.util.scanner,Filenotfoundexception,以上是我的代码(我还有一个错误图像: 如您所见,txt文件与StormAnalysis.java文件位于同一文件夹中。此外,如果我将文件路径更改为“weather.dat”(这是作为另一个任务/问题提供的),则代码可以工作 如果您有任何想法,我们将不胜感激!文件不在那里。如果文件在那里,它不会抛出异常:-) 可能的罪魁祸首是工作目录与预期的不同(即,当前工作目录不包含具有该名称的文件)。这可以通过使用文件的绝对路径并观察它是否正确加载来验证 或者,要查找当前目录,请执行以下操作: public

以上是我的代码(我还有一个错误图像:

如您所见,txt文件与StormAnalysis.java文件位于同一文件夹中。此外,如果我将文件路径更改为“weather.dat”(这是作为另一个任务/问题提供的),则代码可以工作


如果您有任何想法,我们将不胜感激!

文件不在那里。如果文件在那里,它不会抛出异常:-)

可能的罪魁祸首是工作目录与预期的不同(即,当前工作目录不包含具有该名称的文件)。这可以通过使用文件的绝对路径并观察它是否正确加载来验证

或者,要查找当前目录,请执行以下操作:

public StormAnalysis(){
    try {       
        fScanner = new Scanner(new File("tracks1949to2010_epa.txt"));
        while(fScanner.hasNextLine()){
            System.out.println(fScanner.nextLine());
        }
    } catch (FileNotFoundException e) {
        System.out.println("File not found. Try placing the tracks1949to2010_epa.txt in the same folder as StormAnalysis.java");    
        e.printStackTrace();
    }

}

愉快的编码。

文件不在那里。如果是,它不会抛出异常:-)

可能的罪魁祸首是工作目录与预期的不同(即,当前工作目录不包含具有该名称的文件)。这可以通过使用文件的绝对路径并观察它是否正确加载来验证

或者,要查找当前目录,请执行以下操作:

public StormAnalysis(){
    try {       
        fScanner = new Scanner(new File("tracks1949to2010_epa.txt"));
        while(fScanner.hasNextLine()){
            System.out.println(fScanner.nextLine());
        }
    } catch (FileNotFoundException e) {
        System.out.println("File not found. Try placing the tracks1949to2010_epa.txt in the same folder as StormAnalysis.java");    
        e.printStackTrace();
    }

}

快乐编码。

在运行Java应用程序之前,Eclipse默认情况下(仅)将类文件复制到
bin\classes
目录中(除非该目录已更改为其他目录)。出于所有实际目的,此目录与存在输入文件的
src
目录不同。您必须在Eclipse中配置项目的构建属性,以便将输入文件(或所有.txt类型的文件)复制到输出目录。这将使文件在类文件所在的同一目录中可用,从而可以读取该文件。

Eclipse在运行Java应用程序之前,默认情况下(仅)将类文件复制(复制)到
bin\classes
目录中(除非该目录已更改为其他目录)。出于所有实际目的,此目录与存在输入文件的
src
目录不同。您必须在Eclipse中配置项目的构建属性,以便将输入文件(或所有.txt类型的文件)复制到输出目录。这将使该文件在类文件所在的同一目录中可用,从而可以读取该文件。

Eclipse cwd是项目文件夹,比bin和src高一级

String cwd = new File(".").getAbsolutePath();
目录…eclipse工作区\文件IO
2018年5月30日晚上7:52
2018年5月30日07:48 PM 148 sample.txt
2018年5月30日07:46下午src
testFile=新文件(“Sample.txt”);
System.out.println(testFile.getAbsolutePath());

Eclipse cwd是项目文件夹,比bin和src高一级

String cwd = new File(".").getAbsolutePath();
目录…eclipse工作区\文件IO
2018年5月30日晚上7:52
2018年5月30日07:48 PM 148 sample.txt
2018年5月30日07:46下午src
testFile=新文件(“Sample.txt”);
System.out.println(testFile.getAbsolutePath());

@Arnab,由于您使用的是
文件的相对路径
构造函数,因此计算的路径将始终相对于java/javaw可执行文件的工作目录。您需要修改对构造函数的调用,以包含文件所在的任何子目录。@Arnab,由于您使用的是
文件
构造函数的相对路径,因此计算的路径将始终是相对于java/javaw可执行文件的工作目录的。您需要修改对构造函数的调用,以包含文件所在的任何子目录。