Java中打开文件的数量是否存在实际限制?

时间:2010-06-21 16:43:38

标签: java sorting

我在java应用程序中构建了一些文件排序功能,它的目的是对大于20GB的文件进行排序。一般方法是以块的形式读取文件,对内存中的每个块进行排序,然后将其写入自己的临时排序文件。在第二遍,我同时打开所有块文件,并将它们编织在一起,形成最终的排序文件。

我想知道在打开和同时阅读大量文件时是否有任何实际限制?

在我自己的机器(Mac OS X)上,我已经能够读取> 250个文件而没有问题。也许有人意识到可能适用于其他平台的限制?

感谢您的时间。

3 个答案:

答案 0 :(得分:2)

即使Java中没有特定限制,操作系统也会对每个进程的打开文件数施加限制。

在Linux上,您可以通过设置

来更改此限制

ulimit -n max_open_files

答案 1 :(得分:0)

至少在Linux上,您可以查看ulimit -n

答案 2 :(得分:0)

这取决于平台,jvm会愉快地在linux上打开文件,直到它达到打开文件描述符的最大数量(记住unix套接字也是文件描述符)。