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

有没有一种现有方法可以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;

}

}

}

}

以上是 关闭时是否存在现有FileInputStream删除? 的全部内容, 来源链接: utcz.com/qa/400125.html

回到顶部