提问人:Sandeep Girolkar 提问时间:10/30/2023 更新时间:10/31/2023 访问量:58
java spring-boot中目标文件夹中的代码
Code from target folder in java spring-boot
问:
我已经使用 maven-plugin 在目标文件夹中生成了一个 zip 文件,现在我的目标是将该 zip 文件带入/获取/读取到 java 类中,因为逻辑需要该 zip 进行进一步处理 我尝试了各种可能的方法,提供了文件 f = new File(path) 的路径; 但是每次我使用 f.exists() 或 f.isFile() 检查时,它都会给出 false,因为很可能它无法在该路径上找到 zip, 所以我不清楚如何以及给出什么路径,SO 中也没有给出用例 有人可以帮忙吗?
尝试了所有建议的方法 Resource 和 resourceLoader 不能使用,因为它仅在我们从 src/main/resources 读取内容时使用,使用了 java.io 的文件但每次都失败 有人可以解释一下在Java Spring Boot中从目标文件夹中读取某些内容的路径以及如何提供路径吗?
答:
稍微解释一下您的问题,听起来您有一个要在运行时访问的资源文件,并且该资源文件在生成后不会更改。
应将资源文件添加到 ;这样做会在生成 jar 时将资源文件添加到 jar 的根目录中。src/main/resources
如果希望资源文件位于 jar 中的目录中,则只需在 resources 目录下创建该目录结构即可。
例如,如果希望资源文件位于 中,则应将资源文件放在 中。some/directory
src/main/resources/some/directory
访问资源文件时,可以使用 ClassLoader.getResource(String) 或 ClassLoader.getResourceAsStream(String) 从类路径进行访问。
例如,如果我有一个名为 的资源文件,在 中,以下命令将从以下位置加载并打印此文件:my-resources.txt
src/main/resources/some/directory
Application.class
public class Application
{
private static final String RESOURCE_FILE = "some/directory/my-resources.txt";
public static void main(String[] args) throws IOException
{
try (
InputStream in = Application.class.getClassLoader().getResourceAsStream(RESOURCE_FILE);
BufferedReader reader = in != null ? new BufferedReader(new InputStreamReader(in)) : null;
)
{
if (in == null) throw new IllegalStateException("Failed to find: " + RESOURCE_FILE);
String line;
while ((line = reader.readLine()) != null) System.out.println(line);
}
}
}
评论
target
target
resource