can';不从文件中读取,Java

can';不从文件中读取,Java,java,filenotfoundexception,Java,Filenotfoundexception,当我尝试运行该程序时,它总是抛出一个FileNotFoundException,尽管该文件与项目位于同一文件夹中。我用canRead()方法测试了它,结果返回false,但我不明白为什么它不能从文件中读取 package sumOfFloats; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class SumOfFloats { public sta

当我尝试运行该程序时,它总是抛出一个FileNotFoundException,尽管该文件与项目位于同一文件夹中。我用canRead()方法测试了它,结果返回false,但我不明白为什么它不能从文件中读取

package sumOfFloats;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class SumOfFloats {


public static float sumFloats() throws FileNotFoundException{

    File file = new File("floatNumbers.txt");
    float[] array = new float[100];
    int i = 0 ;
    float floatSum = 0.0f;
    Scanner fileReader = new Scanner(file);

    while(fileReader.hasNextLine()){
        array[i] = fileReader.nextFloat();
    }

    for(int j = 0; j < array.length; j++){
        floatSum += array[i];
        i++;
    }

    return floatSum;
}


public static void main(String[] args) throws FileNotFoundException {
    System.out.println(sumFloats());

}
}
package-sumts;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.Scanner;
公共类污水坑{
public static float sumFloats()引发FileNotFoundException{
File File=新文件(“floatNumbers.txt”);
float[]数组=新的float[100];
int i=0;
浮动总和=0.0f;
Scanner fileReader=新扫描仪(文件);
while(fileReader.hasNextLine()){
数组[i]=fileReader.nextFloat();
}
对于(int j=0;j
此问题可能由以下原因引起:

权限限制

检查您是否以有效权限执行程序(如果您在Windows中,请尝试以管理员身份执行,如果您在Unix中,请尝试以root用户身份执行)

相对路径问题


可能是您没有设置文件的有效路径,尝试使用绝对路径进行测试,以确保您可以从中读取。

由于包名为
sumdowlets
,我假设您在
sumdowlets
旁边有一个文件夹,您的
类文件位于该文件夹中,只需将
floatNumbers.txt
放在该文件夹中,并尝试重新编译它,然后执行类,因为您的假设(文件位于正确的位置)无效。文件
floatNumbers.txt
位于哪里?它是否在您的工作目录中?您是否尝试过将.java文件保存在桌面上,通过命令行进行编译,在桌面上复制并粘贴.txt文件,然后运行?使用
System.out.println(System.getProperty(“user.dir”))验证当前文件夹已经这样做了,正如我所说,该文件位于正确的目录中,我使用getProperty对其进行了测试,尝试给出绝对路径,但仍然不起作用尝试像这样读取InputStream=getClass().getResourceAsStream(“floatNumbers.txt”);Scanner fileReader=新扫描仪(流);