java.lang.OutOfMemoryError:使用XLSReader将Excel文件读入java bean时的Java堆空间
我得到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; }
XLSReader倾向于读取内存中的所有数据。
所以如果你的文件很大,你会很快耗尽内存。
根据文件的大小,可以使用-Xms
和-Xmx
参数来增加JVM的内存。
如果文件真的很大,我相信你需要改变读取excel文件的策略。 链接 。