ClassPathResource踩坑

2024-01-12 09:32:07 浏览数 (1)

不要对一切人都以不信任的眼光看待,但要谨慎而坚定。——德谟克里特

今天看到一个问题

代码语言:javascript复制
static {
    try {
        ClassPathResource resource = new ClassPathResource("ip2region.xdb");
        //获取真实文件路径
        String path = resource.getURL().getPath();
        byte[] cBuff = Searcher.loadContentFromFile(path);
        SEARCHER = Searcher.newWithBuffer(cBuff);
        log.info("加载了ip2region.xdb文件,Searcher初始化完成!");
    } catch (Exception e) {
        log.error("初始化ip2region.xdb文件失败,报错信息:[{}]", e.getMessage(), e);
        throw new RuntimeException("系统异常!");
    }
}

报错:

代码语言:javascript复制
/User/achao/IdeaProjects/achao/target/achao-0.0.1-SNAPSHOT.jar/!BOOT-INF/classes/!/ip2region.xdb (No such file or directory)

这里发现多了!这个目录

改成直接读取inputStream解决

代码语言:javascript复制
ClassPathResource resource = new ClassPathResource("ip2region.xdb");
InputStream inputStream = resource.getInputStream();
// 然后使用inputStream来读取数据

0 人点赞