`
sdh88hf
  • 浏览: 69835 次
  • 性别: Icon_minigender_1
  • 来自: 绍兴
社区版块
存档分类
最新评论

使用线程删除导出临时文件

 
阅读更多
项目支持大数据量导出excel,我的方案是使用poi生成excle,然后使用struts的下载将其导出,个人感觉这样操作效率是最快的
基本代码:
                this.setDownLoadFilePath(path);
		this.setDownLoadFileName("webOperate.xls");
		return "downLoad";

告诉struts文件所在位置和下载文件的名称,设定return返回类型stream即可以实现下载了,但是现在碰到这样一个问题:生成在服务器上的excel经过一次导出后将没任何用处,而且一个文件都在10M左右,必须把他删除...可想而知 return前是不能做删除的,否则在return以后struts就获取不到文件而输出流了,所以我想到了使用线程来删除,这个是我第一次在实战中用到线程,心里有点激动,所以做个笔记供日后参考;
public class FileDelete implements Runnable {

	//目标文件地址
	private String filePath = "";

	//执行时间
	private Date date;

	//执行后过多少时间删除(单位:分)
	private int flag = 1;

	public FileDelete(String path, Date d) {
		this.filePath = path;
		this.date = d;
	}

	@Override
	public void run() {
		File file = new File(filePath);

		while (true) {
			Date now = new Date();
			if (now.getTime() > (date.getTime() + flag * 60 * 1000)) {
				if (file.exists()) {
					file.delete();
					break;
				}
			}
			
		}
	}

	public String getFilePath() {
		return filePath;
	}

	public void setFilePath(String filePath) {
		this.filePath = filePath;
	}

	public Date getDate() {
		return date;
	}

	public void setDate(Date date) {
		this.date = date;
	}

	public int getFlag() {
		return flag;
	}

	public void setFlag(int flag) {
		this.flag = flag;
	}

}

我的线程类,大致思路就是拿当前事件与执行时间比较,如果执行时间+设定的时间 小于当前时间的时候将文件删除

所以我现在只要这样就搞定了

 this.setDownLoadFilePath(path);
		this.setDownLoadFileName("webOperate.xls");
//开启线程定时删除文件
Date date = new Date();
		FileDelete fileDelete = new FileDelete(filePath,date);
		Thread t = new Thread(fileDelete);
		t.start();
return "downLoad";

分享到:
评论

相关推荐

    java多线程导出excel(千万级别)优化

    5. 清理:关闭线程池,删除临时CSV文件。 在整个过程中,需要注意以下优化点: - 线程同步:在写入和合并阶段,需要确保线程安全,避免数据竞争。 - 错误处理:处理可能出现的异常,如IO错误或线程中断。 - 性能...

    asp.net Excel导入导出

    5. 删除临时文件,清理资源。 在实现过程中,还要注意错误处理和异常捕获,确保即使在出现错误时也能提供有意义的反馈给用户。 总的来说,无刷新式的Excel导入导出需要结合ASP.NET的服务器端处理能力、文件流操作...

    java将数据导入多个excel并压缩,亲测可用

    - **删除临时文件**:处理完成后,可能需要删除临时文件,以保持文件系统的整洁。 4. **文件压缩**: - **Java内置API**:Java标准库提供`java.util.zip`包,用于压缩和解压文件。可以使用`ZipOutputStream`将多...

    wsyscheck中文版

    清除临时文件:删除%TEMP%,%windir%\Temp及%windir%\Downloaded Program Files下的所有文件。 禁用硬盘自动播放:本功能还包括磁盘无法双击打开故障。注意,某些故障修复后可能需要注销或重启才能生效。 修复安全...

    wsyscheck by wangsea

    清除临时文件:删除%TEMP%,%windir%\Temp及%windir%\Downloaded Program Files下的所有文件。 禁用硬盘自动播放:本功能还包括磁盘无法双击打开故障。注意,某些故障修复后可能需要注销或重启才能生效。 修复安全...

    wsyscheck--强大的清理病毒木马的工具

    清除临时文件:删除%TEMP%,%windir%\Temp及%windir%\Downloaded Program Files下的所有文件。 禁用硬盘自动播放:本功能还包括磁盘无法双击打开故障。注意,某些故障修复后可能需要注销或重启才能生效。 修复安全...

    Wsyscheck0119中文版

    清除临时文件:删除%TEMP%,%windir%\Temp及%windir%\Downloaded Program Files下的所有文件。 禁用硬盘自动播放:本功能还包括磁盘无法双击打开故障。注意,某些故障修复后可能需要注销或重启才能生效。 修复安全...

    Wsyscheck.rar

    清除临时文件:删除%TEMP%,%windir%\Temp及%windir%\Downloaded Program Files下的所有文件。 禁用硬盘自动播放:本功能还包括磁盘无法双击打开故障。注意,某些故障修复后可能需要注销或重启才能生效。 修复安全...

    Wsyscheck20080122(中文版)

    清除临时文件:删除%TEMP%,%windir%\Temp及%windir%\Downloaded Program Files下的所有文件。 禁用硬盘自动播放:本功能还包括磁盘无法双击打开故障。注意,某些故障修复后可能需要注销或重启才能生效。 修复安全...

    Wsyscheck 3

    清除临时文件:删除%TEMP%,%windir%\Temp及%windir%\Downloaded Program Files下的所有文件。 禁用硬盘自动播放:本功能还包括磁盘无法双击打开故障。注意,某些故障修复后可能需要注销或重启才能生效。 修复安全...

    网友gavotte开发的Ramdisk

    从而减少硬盘上文件碎片的产生,并且不需要主动删除这些临时文件,一旦重新启动,这些垃圾文件就自动消失了。也正是这个特性,使得内存盘不适合存储重要的数据文档,因为一旦死机,这些东西就再也找不回来了。 安装...

    程序自删除源码

    在IT领域,程序自删除是一种常见的技术,常用于软件安装程序、临时文件处理或安全相关的应用。当程序执行完毕或达到特定条件时,它会自动从系统中移除自身,以减少磁盘占用,保护隐私,或者防止恶意软件残留。本主题...

    ExcelHelper

    - **导出优化**: 通过内存流或临时文件等方式优化大文件导出,防止内存消耗过大。 4. **高级功能** - **公式处理**: 支持读取和写入Excel公式,确保公式在导入导出过程中保持正确性。 - **图表生成**: 可以根据...

    达梦数据库DBA管理手册

    - DM7的升级:介绍了升级前的准备工作、选择升级方法、使用数据迁移工具和数据导入导出工具,以及升级后期的相关工作。 6. 基础数据库管理: - DM系统管理员:介绍了系统管理员的类型、数据库管理员、安全员和审计...

    vc++ 应用源码包_5

    实现了 清楚internet临时文件、Cookie的清除、游览器地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除...

    内存盘--Ramdisk

    从而减少硬盘上文件碎片的产生,并且不需要主动删除这些临时文件,一旦重新启动,这些垃圾文件就自动消失了。也正是这个特性,使得内存盘不适合存储重要的数据文档,因为一旦死机,这些东西就再也找不回来了。 安装...

    达梦数据库系统管理员手册

    升级章节主要阐述了达梦数据库升级的几种方法,升级前需要的准备工作,以及使用数据迁移工具或数据导入导出工具升级后需要进行的后期工作。 基础数据库管理部分包括创建和配置系统管理员的类型、数据库管理员的任务...

    Visual C++编程技巧精选500例.pdf

    216 如何创建一个临时文件? 217 如何创建一个特大型文件? 218 如何创建一个文本文件? 219 如何删除一个文本文件? 220 如何更名一个文本文件? 221 如何对文本文件进行查找与替换? 222 如何从文本文件中读取一个字符串...

Global site tag (gtag.js) - Google Analytics