美文网首页
Maven 项目获取 resources 下的文件

Maven 项目获取 resources 下的文件

作者: YUNDONG丶 | 来源:发表于2020-05-08 22:12 被阅读0次

记录一个坑,公司中有个业务需求要获取 resources 下的配置文件中的配信息。正常编码时通过

String filePath = XXX.class.getClassLoader().getResource("xxx.xx").getPath(); 
File f = new File(filePath)

是可以正常获取到文件的但是打成 jar 包后就获取不到了。原因是打成 jar 后资源在 jar(jar本身也是一种压缩文件格式)文件内中。Java 没法直接获取到 jar 中的文件。必须通过流的方式获取 jar 中的文件,而不能通过 File 的形式。

以下是正确代码。
try (InputStream resourceAsStream = ParseJsonUtil.class.getClassLoader().getResourceAsStream("文件名")) {
    // IOUtils 是 apache 中的一个类可以将 input 流转换为 String 
    // import org.apache.commons.io.IOUtils;
    String content = IOUtils.toString(resourceAsStream);
}catch (Exception e) {
    e.printStackTrace();
    log.info("readFileToString" + e.getMessage());
}


扩展内容
github
个人博客

相关文章

网友评论

      本文标题:Maven 项目获取 resources 下的文件

      本文链接:https://www.haomeiwen.com/subject/pralmhtx.html