java.lang.OutOfMemoryError:使用XLSReader将Excel文件读入java bean时的Java堆空间

时间:2016-10-13 09:01:50

标签: java excel out-of-memory javabeans jxls

我收到java.lang.OutOfMemoryError:使用XLSReader将Excel文件读入java bean时的Java堆空间

以下是代码段。

public static <T> List<T> parseExcelFileToBeans(final File xlsFile,
                                                                      final File jxlsConfigFile)
        throws Exception {
    final XLSReader xlsReader = ReaderBuilder.buildFromXML(jxlsConfigFile);
    final List<T> result = new ArrayList<>();
    final Map<String, Object> beans = new HashMap<>();
    beans.put("result", result);
    try (InputStream inputStream = new BufferedInputStream(new FileInputStream(xlsFile))) {
        xlsReader.read(inputStream, beans);
    }
    return result;
}

1 个答案:

答案 0 :(得分:1)

XLSReader倾向于读取内存中的所有数据。

因此,如果您的文件很大,您将很快耗尽内存。

根据文件的大小,您可以使用-Xms-Xmx参数来增加JVM的内存。

如果文件非常大,我相信您需要更改读取excel文件的策略。 Link