java - 成功下载java后删除临时文件
问题描述
首先,我在一个临时位置编写 excel 文件,然后我从该位置下载它。这是代码:
在这里,我将 excel 写入某个临时位置并返回该文件的位置:
public String parseExcel(Map<String, List<String>> data) {
Workbook workbook = new XSSFWorkbook();
Sheet sheet1 = workbook.createSheet("Sheet1");
.
.
.
var tmplocation = File.createTempFile("SampleTemplate", ".xlsx");
FileOutputStream fileOut = new FileOutputStream(tmplocation);
workbook.write(fileOut);
fileOut.close();
return tmplocation.getPath();
}
在这里,我正在从该位置下载该文件:
try {
filePath = parseExcel(data);
file = new File(filePath);
return Cors.add(request, Response.ok(file).header("Content-Disposition",
"attachment;filename=\"SampleTemplate.xlsx\"").header("Content-Length ", file.length())).allowAllOrigins().auth().build();
} catch() {
.
.
.
}
要删除我添加的临时文件 finally 块,在 finally 块中我正在获取文件,但它没有用。它说 FileNotFound 异常
文件下载成功后如何删除这个临时文件?
解决方案
的deleteIfExists()
方法java.nio.file.Files
可以帮助你。
如果文件存在,则删除该文件。
与 delete(Path) 方法一样,实现可能需要检查文件以确定文件是否为目录。因此,相对于其他文件系统操作,此方法可能不是原子的。如果文件是符号链接,则删除符号链接本身,而不是链接的最终目标。
如果文件是目录,则目录必须为空。在一些实施方式中,目录具有用于在创建目录时创建的特殊文件或链接的条目。在这样的实现中,当仅存在特殊条目时,目录被认为是空的。
在某些操作系统上,当此 Java 虚拟机或其他程序打开并使用该文件时,可能无法删除该文件。
您可能还希望使用createTempFile()
来创建您的文件。
以供参考:
推荐阅读
- python - 如何允许识别此 if 语句?
- c# - 当括号中的部分是等待的 DisplayAlert 时,我是否需要在 if 语句中使用 == true?
- amazon-s3 - 当使用 boto3.client('s3').generate_presigned_post 为通过表单提交的文件上传生成 URL 时,发生来自 AWS 的错误
- javascript - 通过suitescript 2.0中的客户端脚本禁用自定义日期字段及其旁边的日历按钮
- sql - java.sql.SQLException:[SQL0104] 令牌
无效。有效令牌:) 或 - github - 如何在 github README 文件中显示动画 GIF?
- c++ - 程序在运行时究竟是如何加载 DLL 的?(也想知道PE文件格式,因为它是相关的)
- android - 如何安装 android studio 3.5.0 以供离线使用
- magento - 使用插件 Magento 2 更改控制器重定向 url
- python - 重塑 LSTM 的输入数据