解决File.delete()删除不掉文件

简介: 首先注意两点: 此文件被使用的时候无法删除(比如网络输出没关闭流) 判断此文件是否存在再做删除(exists) 删除文件夹之前先删除文件夹下的所有文件(递归解决) 判断是否删除成功会有返回值,文件名错了的话,删除文件不会报错。

 

首先注意两点:

  1. 此文件被使用的时候无法删除(比如网络输出没关闭流)

  2. 判断此文件是否存在再做删除(exists)

  3. 删除文件夹之前先删除文件夹下的所有文件(递归解决)

  4. 判断是否删除成功会有返回值,文件名错了的话,删除文件不会报错。(new File("x://123.txt"),但是123.txt不存在,不报错)

 

  // 输出文件流
                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;
        }
    }

 

目录
相关文章
|
Java
java中File的delete()方法删除文件失败的原因和解决方案
java中File的delete()方法删除文件失败的原因和解决方案
1897 0
|
SQL JSON NoSQL
esProc SPL vs DuckDB:多源数据处理谁更胜一筹?
DuckDB 和 esProc SPL 均支持多数据源处理,但在功能和灵活性上存在差异。DuckDB 支持常见文件格式(如 CSV、Parquet)、云存储及部分关系型数据库,依赖专用连接器,扩展性有限;esProc 数据源支持更广泛,涵盖多种本地文件、数据库(关系型与 NoSQL)、云存储及远程数据源,使用 Native 接口封装,扩展简便,适合多数据源混合计算。 在数据处理方面,DuckDB 对 CSV 和 Parquet 文件支持成熟,复杂计算需借助 Python,存在体系割裂;esProc 提供 双语法,尤其 SPL 在复杂计算和 JSON 多层结构处理上表现更直观高效。
|
算法 数据安全/隐私保护 Docker
本地微服务进行docker镜像打包发布的流程
本地微服务进行docker镜像打包发布的流程
|
Linux Python
百度搜索:蓝易云【Centos 7系统安装python 3.9.10详细教程。】
现在,你已经成功在CentOS 7系统上安装了Python 3.9.10。你可以使用 `python3.9`命令来运行Python 3.9.10版本的解释器。请根据实际需要进行配置和使用。
743 0
|
10月前
|
缓存 Linux iOS开发
BleachBit系统清理工具软件下载安装教程!免费开源,清理垃圾文件,大幅提升电脑性能!
BleachBit是一款免费开源的系统清理工具,支持Windows、macOS和Linux,可深度清除垃圾文件、浏览器缓存及隐私数据,提升电脑性能与安全性。操作简单,功能强大,适合各类用户。
1257 1
|
应用服务中间件 Linux 开发工具
CentOS7下启动Nginx出现Failed to start nginx.service:unit not found
CentOS7下启动Nginx出现Failed to start nginx.service:unit not found
4540 0
CentOS7下启动Nginx出现Failed to start nginx.service:unit not found
|
前端开发 Java 程序员
记录:java.net.SocketTimeoutException: connect timed out...【亲测有效】
记录:java.net.SocketTimeoutException: connect timed out...【亲测有效】
2922 0
|
缓存 Android开发
Android 清除缓存详细实现(显示缓存大小)
Android 清除缓存详细实现(显示缓存大小)
|
数据可视化 安全 定位技术
【Unity 3D】常用插件DOTween、Haste、Exploder、KGFMapSystem介绍(图文解释)
【Unity 3D】常用插件DOTween、Haste、Exploder、KGFMapSystem介绍(图文解释)
1078 0

热门文章

最新文章