java 删除文件不成功

问题描述

我在项目中需要用到文件上传,用jspsmartupload上传文件成功后,将此文件拷贝到服务器的另一个目录里,再去做数据库操作,如果数据库操作失败了,表明此次操作失败,这个文件也就没用了,于是在异常处理部分里把这个文件删掉。可是经常是删不掉。不知道为什么?    于是单步调试,我尝试在文件拷贝成功后,数据库操作未做的时候,手动的在机子上删除文件,结果windows提示说 文件正被使用,不让删除。    纳闷了?难道是jvm没有回收相关资源,os认为此文件仍被使用?   这个问题也不是每次都是,有时候顺利删除,有时候不行。比较郁闷了。问题补充:是 调用org.apache.commons.io.FileUtils,FileUtils.copyFile(tempFile, newFile);之后,newFile这个文件删不掉。FileUtils应该把相关的IO流都关闭了吧。

解决方案

上传文件后,一定要将输出流关闭。否则就会处理一直被占用的状态!我以前也是碰到这种问题,使用 .close()以后就可以了!
解决方案二:
在正常和异常情况下,要确保操作文件的IO流已经被正确的关闭了

时间: 2024-09-30 00:37:49

java 删除文件不成功的相关文章

java 文件问题-如何使用java判断文件写入成功

问题描述 如何使用java判断文件写入成功 我使用了FileItem类将文件写入到服务器,但是我该如何判断是否写入成功,文件已经存在那个地址上 解决方案 你在去那个地址取一下,判断是否存在就行了 解决方案二: FileStream吧,这个是同步的,也就是说,写完函数才返回.所以自然你执行后面的语句就是写完了. 解决方案三: File file = new File("D://new.txt"); if(file.exists()){ //文件已存在 //file.delete();删除

三款java删除文件夹实现方法

三款java删除文件夹实现方法第一款可以删除文件夹以及文件夹下的子目录与文件 ,后面两个实例只能删除文件夹了. import java.io.file; private void deletefile(file file){    if(file.exists()){     if(file.isfile()){      file.delete();     }else if(file.isdirectory()){      file files[] = file.listfiles();

java 删除文件夹中的所有内容而不删除文件夹本身的实例_java

实例如下: package com.xx; import java.io.File; public class Test { public static void main(String[] args) { String fileRoot = "C:/Users/xx/Desktop/xx/xxx"; delFolder(fileRoot); System.out.println("deleted"); } // // 删除完文件后删除文件夹 // // param

java删除文件和文件夹具体实现_java

1,验证传入路径是否为正确的路径名(Windows系统,其他系统未使用)Java代码 复制代码 代码如下: // 验证字符串是否为正确路径名的正则表达式  private static String matches = "[A-Za-z]:\\\\[^:?\"><*]*";  // 通过 sPath.matches(matches) 方法的返回值判断是否正确  // sPath 为路径字符串  2,通用的文件夹或文件删除方法,直接调用此方法,即可实现删除文件夹或文

java删除文件 图片 与文件夹目录与文件

/** * 删除单个文件 * @param filename 要删除的文件的文件名 * @return 单个文件删除成功返回true,否则返回false */ public static boolean deletefile(string filename) { file file = new file(filename); // 如果文件路径所对应的文件存在,并且是一个文件,则直接删除 if(file.exists() && file.isfile()) { if(file.delete

用Java删除文件夹里的所有文件

import java.io.File; public class Test { public static void main(String args[]){ Test t = new Test(); delFolder("c:/bb"); System.out.println("deleted"); } //删除文件夹 //param folderPath 文件夹完整绝对路径 public static void delFolder(String folderP

java删除文件夹下所有文件示例分享_java

复制代码 代码如下: package org.sw; import java.io.File; public class DeleteFolder {     /**     * 删除文件夹下的所有文件     * @param oldPath     */    public void deleteFile(File oldPath) {          if (oldPath.isDirectory()) {           System.out.println(oldPath + "

Java删除文件和目录代码

问题描述 publicclassDeleteFileUtil***删除文件,可以是单个文件或文件夹*@param  fileName   待删除的文件名</p><p> *@return文件删除成功返回true,否则返回false</p><p> */</p><p> publicstaticbooleandelete(StringfileName){</p><p> Filefile=newFile(fileName

Java删除文件夹和文件

1 验证传入路径是否为正确的路径名private static String matches = "[A-Za-z]:\\\\[^:?\"><*]*";  // 正则表达式,通过sPath.matches(matches)判断   2 通用删除方法,直接调用此方法,即可实现删除文件夹或文件,包括文件夹下的所有文件public boolean DeleteFolder(String sPath) {      flag = false;      file = ne