我在 Java 应用程序中构建了一些文件排序功能,它旨在对大于 20GB 的文件进行排序。一般的做法是分块读取文件,在内存中对每个 block 进行排序,然后将其写入自己的临时排序文件。在第二遍中,我同时打开所有 block 文件并将它们编织在一起成为最终的排序文件。
我想知道在同时打开和读取大量文件时是否应该注意任何实际限制?
在我自己的机器 (Mac OS X) 上,我已经能够毫无问题地读取 >250 个文件。也许有人知道可能适用于其他平台的限制?
感谢您的宝贵时间。
最佳答案
尽管 Java 中没有具体限制,但操作系统确实对每个进程打开的文件数施加了限制。
在 Linux 上,您可以通过设置更改此限制
ulimit -n 最大打开文件数
关于java - Java 中打开文件的数量是否有实际限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3086583/