最近在做一个文档管理系统,结果在删除文件的时候,一直提示我文件删除失败,当然啦,是我在jsp里面写的一个alert("文件删除失败!"),然后我就纳闷儿了,为什么删不掉呢?后来打开windows,找到相应的文件,用管理员权限去删除也删不掉!然后就给我报错,java TM...正在使用这个文件,我顿时就凌乱了,因为我使用的是MyEcplise,所以我又回去检查代码,后来终于找到元凶了,是一个警告导致的错误!警告啊!下面我贴上代码:
/** * 获取单个文件的大小 * @param file 当前文件 * @return long 文件大小 */ public long getFileSize(File file){ long size=0; try{ if(file.exists()) { FileInputStream input=new FileInputStream(file); size=input.available(); input.close();//这个地方尤其关键,一定要关闭,否则文件删除不掉的! }else { file.createNewFile(); } }catch(Exception ex) { ex.printStackTrace(); } return size; }
就是上面的那个input未关掉啊!!!于是造成了文件被占用的问题!唉,以后些什么都要小心,警告也是大问题!所以奉劝各位程序员也要将警告作为错误来处理!不然都不知道自己是怎么出bug的!
关于java中文件删除失败的原因分析
时间: 2024-10-09 07:36:43