java - 如何正确指定路径以从项目的子目录中打开文件?

标签 java resources subdirectory

我的项目结构是这样的

--src

--------------资源

--------------保存

我多次使用此子文件夹,如下所示:

 File tempFile = new File("src/saves/" + videoName + ".json");

或者有时像这样:

ImageView icon = new ImageView("resources/edit.png");

和:

File f = new File("src/resources/zelda.mp4");

由于某些原因,它适用于图标,但不适用于视频/文件,当我尝试时出现此错误:

Caused by: MediaException: MEDIA_UNAVAILABLE : C:\Users\histackoverflow\IdeaProjects\project2\resources\zelda.mp4 (specified path can't be found)

所以我想知道我使用路径的方式有什么问题?

最佳答案

@Edit:这对于在 IDE 中引用文件非常有效。对于 jar 中适当的文件引用,请按照以下步骤操作:Java Jar file: use resource errors: URI is not hierarchical

我不建议以字符串形式输入路径。加载文件的更好方法是将它们放入资源中(您已经这样做了)并通过类引用调用资源并从中获取 URI:

    InputStream file = new FileInputStream(getClass().getResource("/edit.png").getPath());
    Image image = new Image(file);
    ImageView icon = new ImageView(image);


    File f = new File(getClass().getResource("/zelda.mp4").toURI());

确保您的资源目录被标记为资源目录。

关于java - 如何正确指定路径以从项目的子目录中打开文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56210139/

相关文章:

java - 不需要的额外 jar 文件是否会导致性能问题

java - MongoDB Java 驱动程序的自定义实现

java - JAXB 可以生成 ArrayList 而不是 List 吗?

java - 访问外部资源

java - 如何在程序结束时关闭数据库连接?

GIT:更改了具有特定扩展名的文件名

java - 如何使用另一个数组中的对象初始化新数组(我获取地址,而不是值)

c# - 在 C# 中从资源/程序集加载 excel 文件

android - 如何在android中获取目录设备中的文件?

import - golang 使用导入子目录的函数