首先注意如下問題:網絡
此文件被使用的時候沒法刪除(好比網絡輸出沒關閉流)spa
判斷此文件是否存在再作刪除(exists)debug
刪除文件夾以前先刪除文件夾下的全部文件(遞歸解決)code
判斷是否刪除成功會有返回值,文件名錯了的話,刪除文件不會報錯。(new File("x://123.txt"),可是123.txt不存在,不報錯)blog
// 輸出文件流 ou = resp.getOutputStream(); in = report.getInputStream(); int bytes = 0; byte[] bufferOut = new byte[1024]; while ((bytes = in.read(bufferOut)) != -1) { ou.write(bufferOut, 0, bytes); } in.close(); ou.flush(); ou.close();//關掉輸出流,不然文件沒法刪除 /** * 刪除報表包含的臨時文件 */ public void delete() { if (files != null) { Iterator<File> iter = files.iterator(); while (iter.hasNext()) { File temp = iter.next(); if(temp.exists()){ temp.delete(); logger.debug("文件:" + temp.getAbsolutePath() + " 刪除成功!"); }else{ logger.debug("文件:" + temp.getAbsolutePath() + "不存在!"); } } files = null; } if (file != null) { if(file.exists()){ file.delete(); logger.debug("文件:" + file.getAbsolutePath() + " 刪除成功!"); file = null; }else{ logger.debug("文件:" + file.getAbsolutePath() + " 不存在!"); } file = null; } }