gpt4 book ai didi

java - 关闭时是否存在现有的 FileInputStream 删除?

转载 作者:IT老高 更新时间:2023-10-28 20:50:16 26 4
gpt4 key购买 nike

有没有一种现有的方法可以让 FileInputStream 在关闭时自动删除底层文件?

我打算创建自己的实用程序类来扩展 FileInputStream 并自己做,但我有点惊讶于没有东西已经存在。

编辑: 用例是我有一个 Struts 2 操作,它返回一个 InputStream 用于从页面下载文件。据我所知,当操作完成或 FileInputStream 不再使用时,我不会收到通知,并且我不想要(可能很大)临时文件生成以供下载。

这个问题不是 Struts 2 特定的,所以我最初没有包含该信息并使问题复杂化。

最佳答案

标准库中没有这样的东西,也没有任何 apache-commons 库,所以类似于:

public class DeleteOnCloseFileInputStream extends FileInputStream {
private File file;
public DeleteOnCloseFileInputStream(String fileName) throws FileNotFoundException{
this(new File(fileName));
}
public DeleteOnCloseFileInputStream(File file) throws FileNotFoundException{
super(file);
this.file = file;
}

public void close() throws IOException {
try {
super.close();
} finally {
if(file != null) {
file.delete();
file = null;
}
}
}
}

关于java - 关闭时是否存在现有的 FileInputStream 删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4693968/

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