问题描述
如何在 jar 库中存储文件?
设置: 创建一个简单的 maven 项目,其中包含一个使用 getResoruceAsstream() 方法从资源文件夹加载内容的类和一个运行它的测试。测试将失败,问题是找不到该文件,稍后当我们尝试将其编译为 lib 并运行该类时,会出现同样的问题。
问题: 使用我知道的唯一方法(也是唯一可以在网上找到的方法)getResourceAsstream()
会给你一个空引用异常,因为文件丢失。那么如何将文件添加到 jar 并稍后加载?
解决方法
将文件保存在 src/main/resources
目录中,并在需要加载该文件的类中使用以下方法 -
private InputStream readFileFromResourcePath(String filename) {
return getClass().getClassLoader().getResourceAsStream(filename);
}
不要忘记在消费后关闭流。