我收到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;
}
答案 0 :(得分:1)
XLSReader倾向于读取内存中的所有数据。
因此,如果您的文件很大,您将很快耗尽内存。
根据文件的大小,您可以使用-Xms
和-Xmx
参数来增加JVM的内存。
如果文件非常大,我相信您需要更改读取excel文件的策略。 Link