Java renameto无效_Java重命名文件renameTo在windows下失败原因分析
在用Java压缩文件时,将原始数据xxx.dat压缩为xxx.tmp的临时文件,压缩完成以后再将xxx.tmp文件重命名为xxx.z。可怜我在linux下测试成功,而在windows下则一直没有反应。
也看了一些其他类似的情况,因为是同目录重名,不存在跨盘符的问题。
于是仔细看了下代码,猜测是文件是被占用导致。问题代码如下:for (File dataFile : files) {
File compressTempFile = new File(dataFile.getAbsolutePath() + ".tmp");
File compressFile = new File(dataFile.getAbsolutePath() + ".z");
if (this.fileRewrite && compressFile.exists()) {
compressFile.delete();
}
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(compressTempFile));
InputStream is = new FileInputStream(dataFile);
try {
if (dataFile.getName().contains("-bar")) {
int len = doCompress(is, bos, barCellSize, compressBarBatch, compressBarRecordSize);
if (len > max[0]) {
max[0] = len;
}
} else {
int len = doCompress(is, bos, tickCellSize, compressTickBatch, compressTickRecordSize);
if (len > max[1]) {
max[1] = len;
}
}
//compressTempFile.renameTo(compressFile);
//window下错误,此时文件尚未关闭,在windows被占用,linux下则不存在该问题。
} finally {
ResourceUtil.close(is);
ResourceUtil.close(bos);
}
//正确,文件已经关闭
compressTempFile.renameTo(compressFile);
}
Java renameto无效_Java重命名文件renameTo在windows下失败原因分析相关推荐
- java file rename 失败_java重命名文件造成文件不可读写
我想使用java代码对nginx日志文件进行拆分,但是我发现代码执行之后,拆分出来的日志文件没有读写权限,查看文件属性,显示的很诡异: 点击高级按钮,显示你没有权限查看或者编辑这个对象的权限设置: 反 ...
- java文件移动重命名_Java重命名文件和移动文件
Java重命名文件或移动文件是一种常见的IO操作.可以使用File.renameTo(File dest)方法进行重命名文件和移动文件操作. 1. Java重命名文件 如果文件重命名成功,则文件ren ...
- jave类命名_Java重命名文件– Jave移动文件
jave类命名 Java Rename file or move file is a common IO operation. We can use File.renameTo(File dest) ...
- java 重命名_Java如何重命名文件?
在java编程中,如何重命名文件? 此示例演示如何使用File类的oldName.rename To(new_Name)方法重命名文件. package com.yiibai; import java ...
- File的renameTo不能重命名文件
File的renameTo不能重命名文件,经过仔细查看,发现被重命名的文件的流没有关闭,所以把被重命名的文件的流关闭了,才能重命名.特记下. 在后来的编程经历中,又发现了,如果文件名中包含" ...
- 批量重命名文件 - Renamer JAVA File
批量重命名文件的小工具 Renamer是一个帮助您整理硬盘文件的小工具.这次的软件使用JAVA语言开发. Renamer的主要功能: 1.按照指定的规则重命名文件,如IMG ...
- 如何通过Java批量重命名文件名称
日常生活中,我们需要大量重命名文件名称时,如果手动一个个修改,太过浪费时间,我们可以通过写一个Java类,简单执行来实现批量重命名文件名称,我们先指定需要需要重命名文件的路径,将所有文件读取出来,循环 ...
- 使用java批量重命名文件
指定一个文件夹,用于批量重命名文件,或者定位到现有的文件夹中都可以. File file = new File();String[] list = file.list();String coonet ...
- Win 11 F2 重命名 文件、文件夹无效
F2重命名无效 刚用win 11不久, 发现重命名文件和文件夹的时候, F2 没起作用,单独按F2是调声音的大小: 看了好多百度的,还是没有合适的处理答案: 处理方式 Fn+ F2即可快捷重命名
最新文章
- Ionic 存储目录 CORS
- python 向量余弦相似度
- 最小生成树(prime算法、kruskal算法) 和 最短路径算法(floyd、dijkstra)
- nginx 查看 $1,$2,$3
- html中颜色的编号,html中各种颜色的编号.doc
- 话说模式匹配(5) for表达式中的模式匹配
- 数据 3 分钟 | 农行因存在数据泄露风险被罚420万元、Databricks最新融资10亿美元...
- php smarty thinkphp,用新版的thinkphp3.2.3和新版的smarty3.1.29
- java当前路径_java获取当前路径的几种方法
- STL---常用函数用法大集合-=-更新中...
- localstorage和sessionStorage和cookies
- linux内网安装git,Linux 安装git
- 2019年7月Github上最热门的Java开源项目
- python单例装饰器_python单例模式和装饰器
- matlab群速度色散系数,第三章-群速度色散.ppt
- python时间计算天数差
- 【数据库课设】机票预订系统 java+mysql实现 附源码
- Omni-ScaleFeatureLearningforPersonRe-Identification简记
- 天融信防火墙web配置_常见web系统默认口令总结
- Lessonnbsp;52nbsp;Anbsp;prett…