正在从 Java 中资源文件夹的子文件夹加载文件
Loading files from subfolder of the resources folder in Java
我从我的 IntelliJ Java 15 Gradle 项目的资源文件夹中的子文件夹加载文件时遇到问题...
我的项目结构的表示:
src/main/
├── java/
│ ├── AllMyClasses.java ... ... ...
│ └── module-info.java
└── resources/
├── text.txt
└── img/
└── favicon.png
以及我的代码的相关片段:
URL file = ClassLoader.getSystemResource("img/favicon.png");
URL file1 = ClassLoader.getSystemResource("text.txt");
System.out.println(file);
System.out.println(file1);
输出:
null
file:/C:/Users/MyUser/IdeaProjects/MyProject/build/resources/main/text.txt
为什么 java 只能直接识别资源文件夹中的文件,而不能识别子文件夹中的文件?如何让我的程序也能识别子文件夹中的那些文件?
感谢所有能提供帮助的人:)
我相信如果您使用下面这两个中的任何一个都可以解决您的问题。
- InputStream in = FileInputStream(PathOfYourFile)
- API 在路径中可用 class 在 java.nio.file 包中可用。
我不确定为什么你的版本不起作用,但这是我使用的:
getClass().getResourceAsStream("/img/favicon.png");
注意:如果您的 class 不在默认包中,“/img”中的“/”是必需的
(不应该)
我从我的 IntelliJ Java 15 Gradle 项目的资源文件夹中的子文件夹加载文件时遇到问题...
我的项目结构的表示:
src/main/
├── java/
│ ├── AllMyClasses.java ... ... ...
│ └── module-info.java
└── resources/
├── text.txt
└── img/
└── favicon.png
以及我的代码的相关片段:
URL file = ClassLoader.getSystemResource("img/favicon.png");
URL file1 = ClassLoader.getSystemResource("text.txt");
System.out.println(file);
System.out.println(file1);
输出:
null
file:/C:/Users/MyUser/IdeaProjects/MyProject/build/resources/main/text.txt
为什么 java 只能直接识别资源文件夹中的文件,而不能识别子文件夹中的文件?如何让我的程序也能识别子文件夹中的那些文件?
感谢所有能提供帮助的人:)
我相信如果您使用下面这两个中的任何一个都可以解决您的问题。
- InputStream in = FileInputStream(PathOfYourFile)
- API 在路径中可用 class 在 java.nio.file 包中可用。
我不确定为什么你的版本不起作用,但这是我使用的:
getClass().getResourceAsStream("/img/favicon.png");
注意:如果您的 class 不在默认包中,“/img”中的“/”是必需的 (不应该)