为什么java不能找到我的文件?

时间:2015-04-01 23:10:37

标签: java file

我试图查看这些文本文件中有多少存在,但即使有它们,程序也总是说numFiles = 0.我将文件放在src文件夹中名为Levels的文件夹中。感谢

    int numFiles = 0;
    for(int i = 0; i < 24; i++){
        File file = new File("/Levels/level" + (i+1) + ".txt");
        if(file.exists()){
            numFiles++;
        }
    }
    System.out.println(numFiles); 

3 个答案:

答案 0 :(得分:0)

您的路径不正确 - 如果您指的是绝对位置,则以/.

开头

此外,如果您使用的是编辑器,请记住您的Java文件是在src中,但是您没有运行Java文件,您运行类文件,类文件可能在您的bin / build目录中最有可能 - 检查文本文件在build或bin目录中。

答案 1 :(得分:0)

您的路径不正确,如果您指的是本地文件(例如项目文件夹中的内容),请使用

File file = new File("Levels/level" + (i+1) + ".txt");

您在名称前面使用的斜杠使其看起来位于驱动器的根目录中,而不是本地目录。

答案 2 :(得分:0)

<强>被修改

我忽略了DirectoryStream不支持count()

您可以使用绝对路径并使用Stream API和lambdas。像这样:

String dirString = "..." //absolute Path
Path dir = Paths.get(dirString);

int numFiles = dir.getNameCount();
System.out.println(numFiles); 

一个优点是,只要文件保留在同一目录中,您就可以随意重命名文件。如果您只想使用特定文件,可以使用filter(),如下所示:     Files.newDirectoryStream(dir).filter(Predicate);

或在创建DirectoryStream时直接添加过滤器,如下所示:     Files.newDirectoryStream(dir, RegEx);

要对每个文件执行某些操作,您可以使用使用者forEach()或查看Stream JavaDoc以获取其他使用者/中间操作。另请仔细检查DirectoryStream是否支持您要使用的Stream操作。