在/res文件夹中找到一个文件并使用扫描器



我的文件位于My/res中,更具体地说是在/res/Menus/CharSelect中。我已经进入了我的构建路径,并确保res文件夹是一个类路径。然而,我的新扫描器(文件)导致NullPointerException。当我执行file.exists();它返回FALSE…我不知道为什么我是100%,该文件确实存在,它位于CharSelect文件夹。有人能帮忙吗?提前谢谢。

    file = new File(getClass().getResource("/Menus/CharSelect/Unlocked.txt").getPath());
    try
    {
        scanner = new Scanner(file);
    }
    catch (FileNotFoundException e)
    {
        e.printStackTrace();
    }

不要那样做。当您创建一个jar时,您将不能作为File对象访问该文件,而是作为URL对象访问该文件,您必须从openStream()中获得InputStream

使用Scanner(InputStream)代替:

try (InputStream is = getClass().getResource("/Menus/CharSelect/Unlocked.txt").openStream()) {
    scanner = new Scanner(is);
    ...
} // is.close() called automatically by try-with-resource block (since Java 7)

someClass.getResource解析路径相对于someClass位置。将文件移动到PATH_TO_THIS_CLASS_PATH/Menus/CharSelect/unlock .txt,操作必须成功

相关内容

  • 没有找到相关文章

最新更新