Существует ли максимум файлов, которые приложение Java может открыть в один момент? - PullRequest
0 голосов
/ 23 октября 2019

Я пишу Java-приложение, которое должно работать со многими открытыми файлами одновременно. Я знаю, как получить максимально доступную память для файлов, которые нужно прочитать, но есть ли такая вещь, когда открыты слишком много файлов, независимо от доступной памяти?

Я видел вопросы о "многих открытыхфайлы "ошибка, но, читая документацию, я не могу воспроизвести условия и, следовательно, не уверен, как обработать такую ​​ошибку / исключение.

Я изучил java.io.File и java.nioФайлы для таких ошибок или исключений. Конечно, искал его онлайн, особенно на stackoverflow, и поиск похожих вопросов не дал того, что мне нужно.

public static int MAXIMUM_NUMBER_OF_FILES;

/* maximum file number inside a folder depends on the system */
/* maximum number of open files inside RAM ? */


//methods
public static long getAvailableMemory(){
    System.gc(); //clear as much as possible
    Runtime r = Runtime.getRuntime();
    long maxMemory = r.maxMemory(); //add case if this is greater than Long.max_value
    long totalMemory = r.totalMemory(); //add case if this is greater than Long.max_value
    long freeMemory = r.freeMemory();
    return maxMemory - (totalMemory-freeMemory);

}


public static long determineChunkSize(final long fileSize){

    return getAvailableMemory()/MAXIMUM_NUMBER_OF_FILES;
}
...