NetBeans和Eclipse FileNotFoundException

时间:2017-06-11 11:01:12

标签: java eclipse file netbeans bufferedreader

我是NetBeans的新手,并且两个IDE都找不到我的文件时遇到问题。 如果我在PowerShell中编译并运行我的程序,它运行完美。 ExceptionError就像这样“java.io.FileNotFoundException:model \ field \ levels \ map01.field”。 我的包裹是。

  • 控制器
  • model.field.levels
  • view.tiles

在Field.java中:

public void setField() {
    FieldReader fr = new FieldReader();
    field = fr.load("model/field/levels/map01.field");
}

在FieldReader.java中:

public int[][] load(String path){
    int field[][] = null;
    try {
        File file = new File(path);
        BufferedReader br = new BufferedReader(new FileReader(file));
        String s = null;
        int line = 0;
        int x = 0;
        int y = 0;
        while((s = br.readLine()) != null) {
            if(line == 0) {
                int start = 0;
                int split = 0;
                for (int i = 0; i < s.length(); i++) {
                    if(s.charAt(i) == 32) start = i + 1;
                    if(s.charAt(i) == 'x') split = i;
                }
                x = Integer.parseInt(s.substring(start, split));
                y = Integer.parseInt(s.substring(split + 1));
                System.out.println(x);
                System.out.println(y);
                field = new int[x][y];
            }
            if(line >= 2) {
                for (int i = 0; i < x; i++) {
                    field[i][line - 2] = Character.getNumericValue(s.charAt(i));
                }
                System.out.println(s);
            }
            line++;
        }
        br.close();
    } catch ( IOException e ) {
        e.printStackTrace();
    }
    return field;
}

文件到位,加载其他文件,如图像,一切正常。

2 个答案:

答案 0 :(得分:0)

问题已经解决了。 在NetBeans中,可以在右键单击Prokekt&gt;运行时设置工作的direktory。属性&gt;运行&gt;工作指令。获得绝对路径会让我找到解决方案,所以感谢提示Thorbjorn。 :d

答案 1 :(得分:0)

您依赖于相对路径,这需要将当前工作目录设置为有用的东西。 Java不会自动执行此操作,因此您(或IDE)在启动程序时需要执行此操作。

是一个非常有用的工具
File f = ....
System.out.println(f.getAbsolutePath());

告诉你实际上在寻找什么。当您获得更高级的时候,您可以向JVM询问它在哪里找到您的课程,然后推断出您需要的文件的位置。

但请注意,在打包java程序时,所有内容都打包在一个jar文件中。那你当前的方法是行不通的。您应该查看可以在类路径中找到的资源,无论您是在IDE中还是在生产中运行(但是其他程序都不能轻易看到这些文件)。这是新程序员遇到的一个非常普遍的问题,所以你现在可以从现在开始,而不是以后重新编写你的程序。