首先注意如下问题:网络
此文件被使用的时候没法删除(好比网络输出没关闭流)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; } }