java代码书写过程,文件资源的释放需要特别谨慎的对待.通常文件资源使用后必须close,然后再删除。

如果先删除但没有close掉,会造成文件句柄未被释放.

这会造成实际使用磁盘空间较大,成为瓶颈

eg:

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

public class FileTest {

public static void main(String[] args) {

File file = new File("/home/admin/a.txt");

//File file = new File("c://a.txt");

FileOutputStream out = null;

try {

out = new FileOutputStream(file);

file.delete();

while(true){

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if(out!=null) {

out.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

此时文件关闭了,但是out还持有文件,out未关闭则文件句柄未被释放。造成实际可使用空间小于可使用空间。

2.文件句柄的调试可用lsof 命令进行查看

lsof -s |grep java

lsof -s |grep deleted

java 文件句柄不释放_Java文件句柄释放 | 学步园相关推荐

  1. java构造字符缓冲区_java学习笔记 | 学步园

    一.数组 类型[] 名称=new 类型[长度] 二.字符串2.1字符串类Stringjava.lang.StringString 名称=new String("xxxx")=&qu ...

  2. java有关地址的讲解_Java迭代器讲解 | 学步园

    迭代器在其实就是指针,读取集合或者数组中的一个值,读完以后又指向下一条数据. iterator() 迭代器只读,不能改效率要比for循环高 迭代器的一些方法: HasNext() 如果仍有元素可以迭代 ...

  3. java个人所得税计算_java个人所得税计算器 | 学步园

    class Caculate{ private String name; private double money; private double actual; /** * @param usern ...

  4. java迭代器 异常_java迭代器失效 | 学步园

    今天在测试代码的时候出现一个异常ConcurrentModificationException,该异常网上很多解决方案以及解释,但我还是再记录一遍吧. 代码抽象出来是这样的: import java. ...

  5. Java点名分类_java实现点名 | 学步园

    java实现点名,在文本中每行存一个名字. import java.io.File; import java.io.FileInputStream; import java.util.ArrayLis ...

  6. java起名_java命名方法 | 学步园

    Java命名方法 1.骆驼(Camel)命名法:第一个字母小写,随后的每个单词的第一个字母大写.如:studentName 2.帕斯卡(Pascal)命名法:每一个单词的第一个字母都大写.如:Stud ...

  7. java利己线程_java利己线程 | 学步园

    所谓利己线程,就是在运行时不考虑其它线程的运行权限和时间分配,一心只顾自己运行完成了事的这种线程,比如:while(true){............} 但是,如果{..........}的代码中要 ...

  8. java ipv6校验_JS及java验证 IPV6,IPV4地址的 正则表达式 | 学步园

    JS 验证: ipv4地址验证: function queryDev(ip){ var exp=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2 ...

  9. liunx java font_Linux下JDK中文字体乱码 | 学步园

    问题描述: 部署在linux下的java应用程序中的中文会变成一个一个的"口"字,也就是乱码 问题分析: 代码中使用了如下的实现方式: newjava.awt.Font(" ...

最新文章

  1. DWZ与KindEditor编辑器的整合
  2. 【爬蟲】使用 httpclient进行get请求
  3. .NET Core 下使用 Kafka
  4. 来面试,偷懒不答题,直接忽略
  5. PIPI-OJ BUG log
  6. bat 启动 不弹出对话框_跳过网易启动器用Steam启动逆水寒
  7. 我的世界服务器雪球菜单无限雪球,命令方块实现雪球菜单玩家互传功能
  8. 有专门收C语言答案的软件吗,C语言二级考试题库APP
  9. md5算法不可逆,为啥网上很多网站声称可以解密md5
  10. js截取视频第一帧_JS截取视频第一帧
  11. 《Web设计大全》读书笔记之一
  12. 利用卷积神经网络(CNN)构造社区问答系统
  13. App为了漂亮脸蛋也要美颜,Theme 与 Style 的使用,附一键变装 demo
  14. Re:从零开始的DS学习之查找算法
  15. 2022.10.14 英语背诵
  16. 产品经济学之产品定价策略——老吴说产品
  17. 解决 CMD 命令行【不是内部或外部命令,也不是可运行的程序】或者【发生系统错误,拒绝访问】
  18. C# (江湖熟手)- 串口设备对接
  19. 阳新一中2021高考成绩查询入口,点燃激情,赢在高考----阳新一中2021届高三年级百日誓师暨励志演讲报告会...
  20. 科技创造价值 | 云扩科技荣登真榜·中国科技创新品牌榜TOP100

热门文章

  1. 国货定义之剖析兼与倪光南院士商榷
  2. iOS-Jenkins自动化打包集成
  3. 操作系统~假脱机SPOOLing技术与缓冲区管理
  4. Sublime Text 相关教程(转)
  5. python五子棋大作业报告_Python 大作业之五子棋游戏(附代码)
  6. 【教程】建立 局域网下数据互通 的 共享磁盘/文件夹
  7. Android Bluetooth蓝牙enable过程
  8. switch case语法
  9. iphone 内存管理2
  10. uniapp开发的微信公众号,微信设置字体大小或者关怀模式,页面布局字体大小不受影响的解决方法