java读取百万行csv,excel的处理
上篇文章中使用opencsv包读取csv格式,如果csv文件内容过大,会导致jvm产生oom的问题,顾修改代码如下 reader = new CSVReaderBuilder(new InputStreamReader(input, fileEncode)).build() //记录column ArrayList columns = new ArrayList<>(); int columnIndex = 0; String[] rowData = reader.readNext(); 复制代码由之前readall 形式改为readnext()一行行读取形式,按行加载至arrayList,按需处理完在对list进行clear()操作,释放内存,再进行readnext加载。。 excel篇:之前采用 poi用户模式读取excel,会极大的消耗内存,查阅资料poi官方推荐使用事件模式读取贴上代码 xls import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import org.apache.poi.hssf.eventusermodel.*;import org.apache.poi.hssf.eventusermodel.dummyrecord