将文件存储在 jar 库中

Store a file inside a jar library

如何在 jar 库中存储文件?

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

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

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

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

不要忘记在使用后关闭流。