java 解除文件占用_Java如何强制删除java程序占用的文件
在JAVA对文件的读写操作中,操作完以后将输入流和输出流及时关闭时很必要的。假如我们有时候忘记关闭了,又不知道在哪个地方去关闭,为了删除该文件,JAVA可以进行强制删除操作。可以使用如下代码进行强制删除:
public boolean forceDelete(File file){
boolean result=file.delete();
if (!result) {
System.gc(); //回收资源
file.delete();
}
return result;
}
如果一次强制回收不成功,那就搞个循环,多来几次,如下代码:
public boolean forceDelete(File file) {
boolean result = file.delete();
int tryCount = 0;
while (!result && tryCount++ < 10) {
System.gc(); //回收资源
result = file.delete();
}
return result;
}
虽然System.gc()可以这样强制解除对文件的占用,但是也不是万能的,因为:
① 及时关闭输入流、输出流是很有必要的
② System.gc()也不是一定能够回收垃圾的,能否成功回收取决于JVM的回收机制,外部人员是无法掌控的。就像我们去吃饭等时间长了催单,我们只是向餐馆提交了我们的申请,能不能快点上菜依然取决于厨师
③ 即使不用System.gc()进行强制回收,JVM的回收机制也会在一段时间后对资源进行回收
④ 这种方法也只对被java程序占用的文件有用,对于被其他进行占用的文件就无能为力了
java 解除文件占用_Java如何强制删除java程序占用的文件相关推荐
- 转jpg java源程序_将pdf文件转成图片并删除java源代码
将pdf文件转成图片并删除java源代码/** * 将pdf转成img */ public static void changePdfToImg() { try { File file = new F ...
- java 下载后删除,在服务器端生成文件后,下载后并删除,改了后发现文件变成空白解决思路...
当前位置:我的异常网» Java Web开发 » 在服务器端生成文件后,下载后并删除,改了后发现文件 在服务器端生成文件后,下载后并删除,改了后发现文件变成空白解决思路 www.myexception ...
- 如何解决删除文件时显示已经被另一程序占用打开的问题
如何解决删除文件时显示已经被另一程序占用打开的问题 方法一 先尝试进入该文件夹后,选择所有文件,进行删除,这个时候往往会删除掉一部分实际上没有被占用的文件夹/文件,然后剩下真正被占用的. 进入还删除不 ...
- java catch空指针异常处理_Java基础学习:java文件空指针异常处理
在Java编程中,我们或多或少地会遇到一些程序异常的情况,为了不影响程序的正常执行,我们需要在程序发生异常的情况下,进行一些操作来防止造成更大的损失.例如在我们平时的除法运算中,被除数是不能为0的,如 ...
- Linux 删除文件夹和文件的命令(强制删除包括非空文件)
linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可. 直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字 -r ...
- 三种方式强制删除被拒绝访问的文件夹
本人尝试了三种方式强制删除被拒绝访问的系统文件夹.分别是:更改文件夹属性的访问权限,第三方工具软件,Windows命令takeown和cacls.最后用cacls成功地删除了系统文件夹. 背景: 以前 ...
- java 去掉pdf文字_Java 添加和删除PDF图层
在PDF文档中,图层可以使部分内容选择性地被隐藏或显示.通过添加图层,我们可以将文本.图片.表格等元素精确定位于页面指定位置,并可将这些元素进行叠放.组合形成页面的最终效果.本文将介绍如何使用Spir ...
- linux桌面卷积文件删除不掉,Linux 删除文件夹和文件的命令(强制删除包括非空文件)...
linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可. 直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字 -r ...
- java内存过高_Java应用问题定位系列——内存占用过高
定位Java程序内存使用过高或者内存泄漏的问题跟CPU也类似,一般可以分为以下3个步骤: 定位进程 定位线程 定位具体方法(代码部分) 一.定位进程 通过top -c(然后按Shift+M按内存排序) ...
最新文章
- MySql通用二进制版本在Linux(Ubuntu)下安装与开启服务
- JavaScript调用服务器事件
- mqtt如何发送心跳 安卓_互联网推送服务原理:长连接+心跳机制(MQTT协议)
- 地方旅游产业运行监测与应急指挥平台/旅游资源管理平台/旅游产业监测平台/旅游应急指挥平台/旅游资源统计/旅游线路数据/旅游产业可视化大屏管理系统/餐饮场所数据/游客流量监测/景区数据监测/视频监控
- php fpm 平滑重启,nginx、php-fpm平滑重启和重载配置
- 激战2:逐火之路-概念艺术设计
- Thymeleaf $/*/#/@语法
- BE THE PIONEER FROM APSARADB——2018云栖大会·深圳峰会·云数据库在线直播分论坛
- 浪潮存储进逼国际一线厂商
- notepad++批量操作笔记(持续更新..)
- 判断浏览器版本,当浏览器版本过低时提示升级浏览器,不显示原来页面内容
- v-for渲染img标签图片
- 【一日一logo_day_36】fai
- easyui datagrid editor 编辑器的简单活用以及自定义校验
- VC学习路线书籍+视频
- 58到家数据库30条军规解读(58沈剑)
- 转 Sap客户端中英文切换
- 2023最新仿挖片自适应电影模板源码+苹果CMS10内核开发
- 研发团队如何借助Gitlab来做代码review
- 信息不对称状态下的动态零和博弈