java - 上传位于 jar 内的文件
问题描述
我正在尝试上传位于 jar 内的文件。当我正常上传文件时,它工作正常(这是预期的,因为文件在文件系统上)但是当我将一个带有文件的 jar 打包在它里面时它不起作用。我试过使用:
this.getClass().getClassLoader().getResource("big_bird.txt") //不起作用
new File("big_bird.txt".toURI()) //不起作用
this.getClass().getClassLoader().getResourceAsStream("big_bird.txt") //有点像我看到路径但我无法获取文件
我需要能够在 jar 中抓取文件并将其全部上传,所以任何人都可以让我了解如何做到这一点?
解决方案
- 从 jar 中将文件作为流读取
InputStream in = getClass().getResourceAsStream("big_bird.txt");
- 创建临时文件
File tempFile = File.createTempFile("big_bird", "txt");
- 将输入流写入临时文件
try (FileOutputStream outputStream = new FileOutputStream(tempFile)) {
int read;
byte[] bytes = new byte[1024];
while ((read = in.read(bytes)) != -1) {
outputStream.write(bytes, 0, read);
}
}
- 现在您可以使用/上传
tempFile
推荐阅读
- python - django-select2 公开 ajax 端点供外部使用
- java - Java Regex FileName 不重复
- java - HikariCP 的默认最大池大小
- sql - 查询和子查询优化
- microservices - Zuul 转发错误 - 内部服务器错误 500
- javascript - 将提示设置为只读
- regex - 使用正则表达式匹配单词和斜线 (/) 的第 6 次出现
- liferay - 从 liferay 5.2.3 升级到 liferay 6.2 期间出现 NoSuchFileException
- python-3.x - 带有 UTF-8 字符串的 Python 2.7 literal_eval()
- vba - 使用 access-VBA 上传文件时如何防止“内存不足”错误?