java.lang.OutOfMemory错误: Java heap space while reading Excel file into java bean using XLSReader

标签 java excel out-of-memory javabeans jxls

使用 XLSReader 将 Excel 文件读入 java bean 时遇到 java.lang.OutOfMemoryError: 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;
}

最佳答案

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

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

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

如果文件真的很大我相信你需要改变读取excel文件的策略。 Link .

关于java.lang.OutOfMemory错误: Java heap space while reading Excel file into java bean using XLSReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40016601/

相关文章:

crash - 没有系统 OutOfMemoryException

java - 如何在java中的其他地方使用计数

java - Android - 仅在具有 MapView 的单个 Activity 上出现许多 OutOfMemoryError 异常

java - 使用 Java 和正则表达式,如何捕获不确定(?)组?

vba - 使用 VBA 将图像导入 visio

excel - 如何使用 VBA 将 ShapeStyle 应用于 Excel 中图表的特定系列?

excel - 将所有对象移回excel VBA用户表单中的原始位置

list - 如何避免 SWI-Prolog 中的 "out of global stack"错误?

javascript - 从 javascript 文件中提取信息到远程站点

java - AppEngine 连接的 Android 项目中的注释失败