在用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下失败原因分析相关推荐

  1. java file rename 失败_java重命名文件造成文件不可读写

    我想使用java代码对nginx日志文件进行拆分,但是我发现代码执行之后,拆分出来的日志文件没有读写权限,查看文件属性,显示的很诡异: 点击高级按钮,显示你没有权限查看或者编辑这个对象的权限设置: 反 ...

  2. java文件移动重命名_Java重命名文件和移动文件

    Java重命名文件或移动文件是一种常见的IO操作.可以使用File.renameTo(File dest)方法进行重命名文件和移动文件操作. 1. Java重命名文件 如果文件重命名成功,则文件ren ...

  3. jave类命名_Java重命名文件– Jave移动文件

    jave类命名 Java Rename file or move file is a common IO operation. We can use File.renameTo(File dest) ...

  4. java 重命名_Java如何重命名文件?

    在java编程中,如何重命名文件? 此示例演示如何使用File类的oldName.rename To(new_Name)方法重命名文件. package com.yiibai; import java ...

  5. File的renameTo不能重命名文件

    File的renameTo不能重命名文件,经过仔细查看,发现被重命名的文件的流没有关闭,所以把被重命名的文件的流关闭了,才能重命名.特记下. 在后来的编程经历中,又发现了,如果文件名中包含" ...

  6. 批量重命名文件 - Renamer JAVA File

    批量重命名文件的小工具 Renamer是一个帮助您整理硬盘文件的小工具.这次的软件使用JAVA语言开发. Renamer的主要功能:               1.按照指定的规则重命名文件,如IMG ...

  7. 如何通过Java批量重命名文件名称

    日常生活中,我们需要大量重命名文件名称时,如果手动一个个修改,太过浪费时间,我们可以通过写一个Java类,简单执行来实现批量重命名文件名称,我们先指定需要需要重命名文件的路径,将所有文件读取出来,循环 ...

  8. 使用java批量重命名文件

    指定一个文件夹,用于批量重命名文件,或者定位到现有的文件夹中都可以. File file = new File();String[] list = file.list();String coonet ...

  9. Win 11 F2 重命名 文件、文件夹无效

    F2重命名无效 刚用win 11不久, 发现重命名文件和文件夹的时候, F2 没起作用,单独按F2是调声音的大小: 看了好多百度的,还是没有合适的处理答案: 处理方式 Fn+ F2即可快捷重命名

最新文章

  1. Ionic 存储目录 CORS
  2. python 向量余弦相似度
  3. 最小生成树(prime算法、kruskal算法) 和 最短路径算法(floyd、dijkstra)
  4. nginx 查看 $1,$2,$3
  5. html中颜色的编号,html中各种颜色的编号.doc
  6. 话说模式匹配(5) for表达式中的模式匹配
  7. 数据 3 分钟 | 农行因存在数据泄露风险被罚420万元、Databricks最新融资10亿美元...
  8. php smarty thinkphp,用新版的thinkphp3.2.3和新版的smarty3.1.29
  9. java当前路径_java获取当前路径的几种方法
  10. STL---常用函数用法大集合-=-更新中...
  11. localstorage和sessionStorage和cookies
  12. linux内网安装git,Linux 安装git
  13. 2019年7月Github上最热门的Java开源项目
  14. python单例装饰器_python单例模式和装饰器
  15. matlab群速度色散系数,第三章-群速度色散.ppt
  16. python时间计算天数差
  17. 【数据库课设】机票预订系统 java+mysql实现 附源码
  18. Omni-ScaleFeatureLearningforPersonRe-Identification简记
  19. 天融信防火墙web配置_常见web系统默认口令总结
  20. Lessonnbsp;52nbsp;Anbsp;prett…

热门文章

  1. 如何调整图片的分辨率?教你如何在线提高照片清晰度
  2. 当前主流的RPA厂商主要有哪些
  3. 开发板 时间 同步_近万字试用报告!RISCV开发板GD32VF103
  4. WebForm jquery获取radiobuttonlist控件的选中值
  5. 计算机组成与结构微程序控制器
  6. 我劝你千万不要去做CSGO游戏搬砖项目
  7. C++用其他符号作为输入间隔
  8. ssm+JSP计算机毕业设计作业管理系统ctoc8【源码、程序、数据库、部署】
  9. 沙场秋点兵——MySQL容器化性能测试对比
  10. N92 UCWEB 6.7免签名下载安装