我正在尝试写入多个文件,确切地说是19.写了几百次之后,我得到了Java IOException:打开的文件太多了.但是,就像我说的那样,我打开了19个文件,并且我在开始时打开了所有文件.这里有什么问题?我可以验证写入是否成功.
编辑:我没有使用try-catch-finally块.我让函数抛出异常.现在我把try-catch-finally放在他们周围,他们似乎做得更好.
大多数人都是对的,因为我打开的文件超出了我的想象.还在跟踪事情.稍后我会发布更新.
重新编辑:确保所有文件访问都用try-catch包装 - 最终修复了问题.谢谢
我有一个程序受到文件描述符增加的影响。当我执行命令 ls -l /proc/5969/fd 时,我看到其中 5969 是 java 程序的 pid 文件描述符的数量不断增加。但我无法打开其中一个文件描述符以查看哪些文件保持打开状态:以下是列表示例:
lrwx------ 1 root root 64 oct 24 16:08 52295 -> socket:[2577706264]
lrwx------ 1 root root 64 oct 24 16:08 52296 -> socket:[2579543392]
lrwx------ 1 root root 64 oct 24 16:08 52297 -> socket:[2578760962]
Run Code Online (Sandbox Code Playgroud)
请帮助我找到解决此文件描述符泄漏的方法,了解哪些文件保持打开状态并增加文件描述符数量。