gpt4 book ai didi

java - 在 jar 中运行时从资源文件夹中获取文件名列表

转载 作者:行者123 更新时间:2023-11-30 06:22:47 25 4
gpt4 key购买 nike

我在“resource/json/templates”文件夹中有一些 Json 文件。我想读取这些 Json 文件。到目前为止,下面的代码片段允许我在 IDE 中运行程序时执行此操作,但在 jar 中运行程序时失败。

  JSONParser parser = new JSONParser();
ClassLoader loader = getClass().getClassLoader();
URL url = loader.getResource(templateDirectory);
String path = url.getPath();
File[] files = new File(path).listFiles();
PipelineTemplateRepo pipelineTemplateRepo = new PipelineTemplateRepoImpl();
File templateFile;
JSONObject templateJson;
PipelineTemplateVo templateFromFile;
PipelineTemplateVo templateFromDB;
String templateName;


for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
templateFile = files[i];
templateJson = (JSONObject) parser.parse(new FileReader(templateFile));
//Other logic
}
}
}
catch (Exception e) {
e.printStackTrace();
}

任何帮助将不胜感激。

非常感谢。

最佳答案

假设在类路径中,jar中的目录以/json开头(/resource为根目录),则可能是这样的:

    URL url = getClass().getResource("/json");
Path path = Paths.get(url.toURI());
Files.walk(path, 5).forEach(p -> System.out.printf("- %s%n", p.toString()));

这使用 jar:file://... URL,并在其上打开虚拟文件系统。

检查 jar 确实使用该路径。

可以根据需要进行阅读。

     BufferedReader in = Files.newBufferedReader(p, StandardCharsets.UTF_8);

关于java - 在 jar 中运行时从资源文件夹中获取文件名列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47775482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com