RandomAccessFile:Too many open files

笔者写了一段程序监控文件的最后一行数据确认是否写入完成。轮询多次后导致如下异常:

java.io.FileNotFoundException: /data/sample/wu_1d0h7noerneo2gt1qav1kdhttc5.gz.out (Too many open files)
        at java.io.RandomAccessFile.open0(Native Method)
        at java.io.RandomAccessFile.open(RandomAccessFile.java:316)
        at java.io.RandomAccessFile.<init>(RandomAccessFile.java:243)
        at sw.melody.modules.docker.util.MoreLogUtil.getLastLine(MoreLogUtil.java:67)
        at sw.melody.modules.docker.util.MoreLogUtil.getLastLine(MoreLogUtil.java:100)
        at sw.melody.modules.docker.task.PollLogFileTask.run(PollLogFileTask.java:62)

1.RandomAccessFile简介

利用文件指针变量偏移来访问文件的任意位置,常常用在访问局部文件的内容,比如访问文件首行、末行等。

这个类在很多资料上翻译成中文都是:随机访问文件,在中文里,随机是具有不确定的含义,指一会访问这里,一会访问那里的意思。如果以这种语义来解释的话,就会感到很困惑。其实,Random在英文中不仅仅有随机,还有任意的意思。任意表示我们可以指定文件中任何一个位置去操作一个文件。

该类有几个重要的方法,除了read、write,还有seek用来设置读写的偏移量,close用来关闭任意读文件流、并且释放系统资源

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容