java 文件句柄不释放_Java文件句柄释放 | 学步园
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文件句柄释放 | 学步园相关推荐
- java构造字符缓冲区_java学习笔记 | 学步园
一.数组 类型[] 名称=new 类型[长度] 二.字符串2.1字符串类Stringjava.lang.StringString 名称=new String("xxxx")=&qu ...
- java有关地址的讲解_Java迭代器讲解 | 学步园
迭代器在其实就是指针,读取集合或者数组中的一个值,读完以后又指向下一条数据. iterator() 迭代器只读,不能改效率要比for循环高 迭代器的一些方法: HasNext() 如果仍有元素可以迭代 ...
- java个人所得税计算_java个人所得税计算器 | 学步园
class Caculate{ private String name; private double money; private double actual; /** * @param usern ...
- java迭代器 异常_java迭代器失效 | 学步园
今天在测试代码的时候出现一个异常ConcurrentModificationException,该异常网上很多解决方案以及解释,但我还是再记录一遍吧. 代码抽象出来是这样的: import java. ...
- Java点名分类_java实现点名 | 学步园
java实现点名,在文本中每行存一个名字. import java.io.File; import java.io.FileInputStream; import java.util.ArrayLis ...
- java起名_java命名方法 | 学步园
Java命名方法 1.骆驼(Camel)命名法:第一个字母小写,随后的每个单词的第一个字母大写.如:studentName 2.帕斯卡(Pascal)命名法:每一个单词的第一个字母都大写.如:Stud ...
- java利己线程_java利己线程 | 学步园
所谓利己线程,就是在运行时不考虑其它线程的运行权限和时间分配,一心只顾自己运行完成了事的这种线程,比如:while(true){............} 但是,如果{..........}的代码中要 ...
- 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 ...
- liunx java font_Linux下JDK中文字体乱码 | 学步园
问题描述: 部署在linux下的java应用程序中的中文会变成一个一个的"口"字,也就是乱码 问题分析: 代码中使用了如下的实现方式: newjava.awt.Font(" ...
最新文章
- DWZ与KindEditor编辑器的整合
- 【爬蟲】使用 httpclient进行get请求
- .NET Core 下使用 Kafka
- 来面试,偷懒不答题,直接忽略
- PIPI-OJ BUG log
- bat 启动 不弹出对话框_跳过网易启动器用Steam启动逆水寒
- 我的世界服务器雪球菜单无限雪球,命令方块实现雪球菜单玩家互传功能
- 有专门收C语言答案的软件吗,C语言二级考试题库APP
- md5算法不可逆,为啥网上很多网站声称可以解密md5
- js截取视频第一帧_JS截取视频第一帧
- 《Web设计大全》读书笔记之一
- 利用卷积神经网络(CNN)构造社区问答系统
- App为了漂亮脸蛋也要美颜,Theme 与 Style 的使用,附一键变装 demo
- Re:从零开始的DS学习之查找算法
- 2022.10.14 英语背诵
- 产品经济学之产品定价策略——老吴说产品
- 解决 CMD 命令行【不是内部或外部命令,也不是可运行的程序】或者【发生系统错误,拒绝访问】
- C# (江湖熟手)- 串口设备对接
- 阳新一中2021高考成绩查询入口,点燃激情,赢在高考----阳新一中2021届高三年级百日誓师暨励志演讲报告会...
- 科技创造价值 | 云扩科技荣登真榜·中国科技创新品牌榜TOP100