问题情况是这么个样子的,现在在做一个并发的文件下载功能,
1系统要实现下载一个.MDB,而此MDB文件内容是不同用户内容不同的,因此我在项目中建立一个MDB模板。当用户进行操作后将模板拷如临时文件夹内,并进行重命名,然后将相应数据写入。
2.通过在struts2的下载进行文件下载。
现在问题是如何在文件下载后将临时文件进行删除?
注:系统并发性很高。
这就要看你原来是如何写数据的,
看看这个
[url=http://topic.csdn.net/u/20090901/13/39f8b236-9ce8-40ff-8096-2039393c2827.html] 关于struts2 upload后,临时文件的删除问题[/url]
我的建议是不要拷贝一份模板,你直接把模板文件内容保存在内存的一个全局变量里,
每个用户请求的时候,你就拷贝一份模板字符内容就好了嘛,不要什么临时文件了,
[code="java"]
//设计一个保存模板内容的类
class GlobalConfig{
public static byte[] TEMPLATE = null;
static {
//读取模板文件
try {
FileInputStream fr = new FileInputStream("xxx.mdb");
ByteArrayOutputStream baout = new ByteArrayOutputStream();
BufferedOutputStream bout = new BufferedOutputStream(baout);
byte[] buffer = new byte[4096];
int length;
while( (length = fr.read(buffer)) != -1)
{
bout.write(buffer, 0, length);
}
TEMPLATE = baout.toByteArray();
fr.close();
bout.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
[/code]