一般来说 java file.delete失败 有以下几个原因
1.看看是否被别的进程引用,手工删除试试(删除不了就是被别的进程占用)
2.file是文件夹 并且不为空,有别的文件夹或文件,
3.极有可能有可能自己前面没有关闭此文件的流(我遇到的情况)
这个方法我用来获取文件的大小,用到了流类,但是用完了没有关闭,导致无法删除文件:
/****
* 获取临时文件锁
* @return
* @throws IOException
*/
public boolean getLock() throws IOException {
// 打开一个临时的文件,注意同一共享内存,该文件名要相同,可以在共享文件名后加后缀“.lock”。
fis = new RandomAccessFile(mapfile + ".lock", "rw");
// 获得文件通道
lockfc = fis.getChannel();
// 获得文件的独占锁,该方法不产生堵塞,立刻返回
flock = lockfc.tryLock();
// 如果为空,则表明已经有应用占有该锁
if (flock == null) {
// 不能执行写操作
return false;
} else {
// 可以执行写操作
return true;
}
}
后经修改,增加关闭流的方法,立马搞定
/***
* 释放临时文件锁
* @throws IOException
*/
public void relaseLock() throws IOException{
flock.release();
fis.close();
lockfc.close();
}
分享到:
相关推荐
"Java 项目启动时执行指定方法" 在 Java 项目中,实现项目启动时执行指定方法是非常有用的,今天我们就来详细介绍如何实现这个功能。 首先,我们需要了解为什么要在项目启动时执行指定方法。通常情况下,在项目...
8. **文件操作**:由于涉及数据库连接配置和文件导出,系统可能使用了Java的File和InputStream/OutputStream类进行文件读写。 9. **数据库操作**:通过使用JDBC(Java Database Connectivity)API,系统能够执行SQL...
Java 英文单词汇总是 Java 语言中广泛使用的一些英文单词的总结,这些单词涵盖了 Java 中的大部分方法的名字。了解这些单词的含义可以帮助开发者更好地理解 Java 语言,并提高编程效率。 Abstract:抽象的,指的是...
8. 使用Process进行命令调用:如果需要执行HDFS相关的shell命令,可以通过Runtime.getRuntime().exec()方法调用外部命令,但请注意这通常不推荐在生产环境中使用,因为它可能导致安全问题。 总结来说,Java操作HDFS...
对GET、POST、PUT、DELETE等请求方式均支持,很适合web开发。 无需环境配置,有java环境即可。 moco采用热部署,修改配置后,立刻生效,无需重启服务。只需要维护接口,也就是契约即可。 对可能用到的数据格式都支持...
GDAL不仅仅是一个库,它还包括一系列的命令行工具,使得用户可以直接对地理数据进行操作。 在这个压缩包中,"gdal.jar"是GDAL为Java提供的API实现,它封装了GDAL的C++接口,使得Java开发者可以方便地在Java程序中...
**注意**:上述代码可能因浏览器兼容性问题导致图片不显示。建议参考原文链接获取更详细的实现方案。 3. **参考资料**: - [链接1](http://blog.csdn.net/jack850703/article/details/4160817) - [链接2]...
file.delete(); } } } } } ``` 为了使BroadcastReceiver生效,我们需要在AndroidManifest.xml中声明它,并设置`android:enabled="true"`和`android:exported="true"`,因为我们需要监听系统广播: ```xml ...
要删除特定用户,可以直接调用`delete()`方法: ```java User userToRemove = ...; // 获取要删除的用户对象 userDao.delete(userToRemove); ``` 8. **事务处理** 对于需要确保原子性的多步操作,可以使用`...
在Linux环境下进行MySQL的操作和编程是一项基础而关键的技能,特别是在Java开发中,数据库的管理是必不可少的一部分。本文主要介绍了如何在Linux系统中对MySQL进行基本操作,包括修改管理员密码、创建与管理用户、...
- 保存并执行命令`source /etc/profile`使环境变量生效。 3. **配置Elasticsearch**: - 修改Elasticsearch配置文件`/home/elasticsearch/bin/elasticsearch`中的`JAVA_HOME`为`ES_JAVA_HOME`。 - 使用文本编辑...
keytool -delete -alias tomcat -keystore C:/application/Java/jre7/bin/security/cacerts -storepass changeit ``` 如果之前已经存在证书,则需要先删除。该命令用于从JRE的默认证书存储(cacerts)中删除名为...
6. **映射文件(Mapping File)**:定义Java类与数据库表之间的映射规则,通常使用.hbm.xml文件格式。 7. **Criteria查询**:一种面向对象的查询方式,提供了更加灵活的查询条件设置。 8. **HQL(Hibernate Query ...
解决方法是 Ctrl+alt+delete 调出任务管理器,在启动下禁用它,然后搜索服务找到 Apache Tomcat,将它停止。然后在 Eclipse 中再启动就不会报端口占用。 三、项目的导入 在 Eclipse 中,我们可以通过以下步骤来...
- **删除数据**:使用`Delete`对象,通过`HTable.delete(Delete)`执行删除,注意删除操作并非立即生效。 ##### 3. 锁机制 HBase在执行插入、获取和删除操作时会自动对行键加锁,防止并发冲突,但浏览操作不加锁。 ...
在IT行业中,尤其是在Web开发领域,跨域问题是一个常见的挑战。Tomcat服务器作为Java Servlet容器,经常被用作后台服务的运行平台。然而,由于浏览器的同源策略限制,不同域名之间的通信会受到约束,这就需要用到...
为了使LogMiner能够捕获所有的DML操作(包括INSERT、UPDATE、DELETE等),我们需要启用补充日志功能: ```sql ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS; ``` 该命令将开启...
19. AutoRedraw 属性:在 VB 或类似环境中,设置窗体的 AutoRedraw 属性为 True 可使 Print 方法在 Form_Load 事件中生效,从而实时显示绘制的内容。 20. Java 重写 `toString()`:在 Java 中,子类重写 `toString...
- **离线下载**:从Google官网下载SDK包,适用于网络不稳定的情况。 ### 设置环境变量 为了能够顺利地在计算机上运行Android开发工具,需要正确设置环境变量。 #### Linux环境配置 1. **编辑bash配置文件**:在...
echo "Delete the file bakup successfully. " echo "Bakup completed." ``` 脚本中,首先设置了Oracle相关的环境变量,如`ORACLE_BASE`, `ORACLE_HOME`, 和 `ORACLE_SID`,这些变量定义了Oracle软件的安装位置和...