Maven 项目获取 resources 下的文件

记录一个坑,公司中有个业务需求要获取 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
个人博客

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。