之前介绍了如何读取较大文件的excel文件,但是都无法进行文件的写入操作,在写大文件的情况下就会出现oom
错误模拟
同之前一样,设置heap大小为100m用于模拟,之后创建简单的方法来创建一个大的xlsx
public static void main(String[] args) throws Exception {
// 创建Excel的工作书册 Workbook,对应到一个excel文档
XSSFWorkbook wb = new XSSFWorkbook();
// 创建Excel的工作sheet,对应到一个excel文档的tab
XSSFSheet sheet = wb.createSheet("sheet1");
for (int i = 0; i < 100000; i++) {
// 创建Excel的sheet的一行
XSSFRow row = sheet.createRow(i);
// 创建一个Excel的单元格
XSSFCell cell = row.createCell(0);
// 给Excel的单元格设置样式和赋值
cell.setCellValue("hello world");
}
FileOutputStream os = new FileOutputStream("d:\\workbook.xlsx");
wb.write(os);
os.close();
}
运行之后就将报出oom
Exception in thread "main" java.lang.OutOfMe