首页 > 解决方案 > Java 应用程序一次最多可以打开多少个文件?

问题描述

我正在编写一个需要同时打开许多文件的 Java 应用程序。我知道如何为要读取的文件获取最大可用内存,但是不管可用内存如何,是否存在打开太多文件的情况?

我已经看到有关“对许多打开的文件”错误的问题,但阅读文档后,我无法重现这些条件,因此不确定如何处理此类错误/异常。

我查看了 java.io.File 和 java.nio.Files 是否存在此类错误或异常。当然是在网上找的,尤其是在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;
}

标签: javaexceptionintellij-ideamemory-managementfile-io

解决方案


推荐阅读