【问题标题】:java.lang.OutOfMemoryError: Java heap space while reading Excel file into java bean using XLSReaderjava.lang.OutOfMemoryError:使用 XLSReader 将 Excel 文件读入 Java bean 时出现 Java 堆空间
【发布时间】:2016-10-13 09:01:49
【问题描述】:

我收到 java.lang.OutOfMemoryError: Java heap space while reading Excel file into java bean using XLSReader

这里是代码sn-p。

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;
}

【问题讨论】:

  • 你好像在读一个大文件,它的大小是多少?
  • @JakubJankowski 大小为 16 MB。我尝试将 JVM 内存增加到 2G,但仍然看到同样的问题。

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


【解决方案1】:

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

所以如果你的文件很大,你很快就会耗尽内存。

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

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

【讨论】:

    猜你喜欢
    • 2021-09-09
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多