gpt4 book ai didi

java - 文件删除仅适用于第一次

转载 作者:行者123 更新时间:2023-12-01 10:15:58 24 4
gpt4 key购买 nike

为了使用 REPORT_FILE_RESOLVER 解析 Jasper 报告中的图像,我正在创建临时文件并从 inputStream 复制到该文件。

      final File tempFile = File.createTempFile("aaa", ".tmp");
IOUtils.copy(resource.getInputStream(), new FileOutputStream(tempFile));

导出 jasper 报告后,我尝试删除临时文件,如下所示:

    final boolean deleteIfExists = Files.deleteIfExists(Paths.get(tempfile.getPath()));
// file.delete();

但是如果我使用Files.deleteIfExists(Paths.get(tempfile.getPath())),文件删除只有第一次成功

file.delete() 失败。我正在实现网络应用程序,这个函数可以被调用很多次......后者删除时间,只是显示文件被另一个进程使用...

不知道为什么...

最佳答案

尝试关闭OutputStream

类似这样的东西(使用AutoCloseable接口(interface)和“try-with-resources”语句)

    final File tempFile = File.createTempFile("aaa", ".tmp");
try (OutputStream outputStream = new FileOutputStream(tempFile)) {
IOUtils.copy(resource.getInputStream(), outputStream);
// do something
}

关于java - 文件删除仅适用于第一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35887142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com