2010-06-21 107 views
2

我已經建立了一些文件分類功能到一個Java應用程序,它的目的是排序大於20GB的文件。一般的方法是以塊的形式讀取文件,對內存中的每個塊進行排序,然後將其寫入其自己的臨時排序文件。在第二遍中,我同時打開所有塊文件並將它們一起編織成最終的排序文件。Java中打開文件的數量是否有實際限制?

我想知道是否有任何實際的限制,我應該知道什麼時候打開和閱讀大量的文件同時?

在我自己的機器上(Mac OS X),我已經能夠讀取> 250個文件而沒有問題。也許有人意識到可能適用於其他平臺的限制?

謝謝你的時間。

+0

操作系統也可能有限制。 – jjnguy 2010-06-21 16:46:59

回答

2

儘管在Java中沒有特定的限制,但操作系統確實對每個進程打開的文件數量施加了限制。

在Linux上,你可以通過設置

的ulimit -n max_open_files

0

在Linux上,至少,你可以用ulimit檢查-n

0

這取決於平臺,在更改此限制例如,jvm會很高興地在linux上打開文件,直到達到打開的文件描述符的最大數量(記住在Unix套接字上也是文件描述符)。

相關問題