Java临时文件删除时注意的坑

前言

最近在生产环境上发现了临时目录堆积吃掉大量磁盘的问题,最终原因是代码有Bug,异常后未执行delete file的代码或者执行了,但是删除失败。

解决思路

  1. 将删除文件的代码放到finally块中。
  2. 确保删除的文件未被使用。

例子

String fdfsPath = null;
String dataHash = null;
String tmpPath = tmpDir + "/" + Tools.getUUID32() + ".json";
File tmpFile = new File(tmpPath);
try {
  FileUtil.writeUtf8String(hoJson.getJSONObject("data").toJSONString(), tmpFile);
  fdfsPath = fastDFSUtil.upload(tmpFile);
  dataHash = ManUtil.getSM3Str(FileUtil.readUtf8String(tmpFile)).toLowerCase();
}catch (Exception e){
  throw e;
}finally {
  //清理掉临时文件  确保能够执行,不然会导致临时文件堆积
  boolean b = FileUtil.del(tmpFile);
  logger.debug("删除临时文件" + tmpPath +" = " +b);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值