将文件存储在 jar 库中

问题描述

如何在 jar 库中存储文件

设置: 创建一个简单的 maven 项目,其中包含一个使用 getResoruceAsstream() 方法从资源文件夹加载内容的类和一个运行它的测试。测试将失败,问题是找不到该文件,稍后当我们尝试将其编译为 lib 并运行该类时,会出现同样的问题。

问题: 使用我知道的唯一方法(也是唯一可以在网上找到的方法getResourceAsstream() 会给你一个空引用异常,因为文件丢失。那么如何将文件添加到 jar 并稍后加载?

解决方法

将文件保存在 src/main/resources 目录中,并在需要加载该文件的类中使用以下方法 -

private InputStream readFileFromResourcePath(String filename) {
    return getClass().getClassLoader().getResourceAsStream(filename);
} 

不要忘记在消费后关闭流。