修正:而不是调用isFile()我用exists(),它似乎工作正常。如果可能的话,有人可以解释为什么这种改变起作用了?Java:文件输出帮助
我试图写出一个excel文件,但如果名称已经存在,在尝试创建该文件时遇到问题。
基本上我正在上传到服务器上的文件,读取它,然后在具有相同文件名的新位置输出报告文件。我试图通过简单地检查文件是否已经存在,然后在文件名上添加一个数字来做到这一点。我的代码在文件不存在的情况下或者没有数字时存在(例如filename.xls)。如果一个文件名称为“filename1.xls”,服务器似乎在尝试写入文件时会挂起。有什么可以解决这个问题?
这里是我的代码:
String destination = "c:/apache-tomcat-7.0.8/webapps/reports/" + fileName.substring(fileName.lastIndexOf("\\")+1, fileName.lastIndexOf(".")) + ".xls";
int filenum = 1;
while (new File(destination).isFile()) {
destination = "c:/apache-tomcat-7.0.8/webapps/reports/" + fileName.substring(fileName.lastIndexOf("\\")+1, fileName.lastIndexOf(".")) + filenum + ".xls";
filenum++;
}
WritableWorkbook workbook = Workbook.createWorkbook(new File(destination));
如果事情仍保持文件打开那么为什么当工作,如果名称为“file.xls”,而不是名称为“file1.xls”的文件。这两种情况都不会失败吗? – Biggsy 2011-05-25 18:54:13