修正:而不是調用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