JAVA读取2g数据的速度_Java 读取大容量excel
项目要求导入excel, 但是文件很大,一次性读进去会导致内存不足而报错,
下面是我解决的方法:
首先倒入需要的jar
org.apache.poi
poi-ooxml
3.17
org.apache.poi
poi-ooxml-schemas
3.17
org.apache.poi
poi
3.17
com.monitorjbl
xlsx-streamer
1.2.0
org.apache.poi
openxml4j
1.0-beta
//报这个错需要引下面这个jar包
Exception in thread "main" java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal
xml-apis
xml-apis
1.4.01
借助第三方工具:StreamingReader
package com.quanzhen.test;
import com.monitorjbl.xlsx.StreamingReader;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import java.io.FileInputStream;
/**
* Created by Administrator on 2019/5/21 0021.
*/
public class Utf8Util {
public static void testLoad() throws Exception{
FileInputStream in = new FileInputStream("C:/Users/Administrator/Desktop/Dm_Mobile.xlsx");
Workbook wk = StreamingReader.builder()
.rowCacheSize(100) //缓存到内存中的行数,默认是10
.bufferSize(4096) //读取资源时,缓存到内存的字节大小,默认是1024
.open(in); //打开资源,必须,可以是InputStream或者是File,注意:只能打开XLSX格式的文件
Sheet sheet = wk.getSheetAt(0);
//遍历所有的行
for (Row row : sheet) {
System.out.println("开始遍历第" + row.getRowNum() + "行数据:");
//遍历所有的列
for (Cell cell : row) {
System.out.print(cell.getStringCellValue() + " ");
}
System.out.println(" ");
}
}
public static void main(String[] args) throws Exception {
testLoad();
}
}
刚开始报版本不支持52.0,网上说是因为我用的jdk是1.7的,要更新成1.8的,换成1.8的之后,还是一大堆错误,主要是因为
jar包没有全部导入,还有一个原因就是版本不一致,要是4.0都是4.0要是3.8都是3.8,
全部导入之后,把jdk切换成1.7和1.8,发现两个都是可以的,并不是jdk版本问题
JAVA读取2g数据的速度_Java 读取大容量excel相关推荐
- java 数据库数据写接口_Java读取接口数据并保存到数据库
public class Test05GetData { //guo sheng shi xian zhen cun的表结构完全一样.数据全部读取完毕之后再将数据整合到同一张表中 protected ...
- java读取文件的方法是_Java读取文件方法大全
Java读取文件方法大全 2011/11/25 9:18:42 tohsj0806 http://tohsj0806.iteye.com 我要评论(0) 摘要:文章来源:http://www.c ...
- java 读取文件第n行_java读取文件最后N行
指定行数,可以获取到从这行到文件尾的所有行,分享自大熊. 源文件: 读取最后10行结果 import java.io.File; import java.io.IOException; import ...
- java 监听写文件的进度_java读取文件显示进度条的实现方法
实现这个功能比较简单,用到的类有两个:ProgressMonitorInputStream(主要是整个类) 和 ProgressMonitor ,它们在javax.swing中 大体思路,你要首先知道 ...
- 前端读取文件图片信息流;js读取图片不同信息流;js读取图片;前端就js读取二进制数据;前端js读取文件流使用FileReader对象的readAsDataURL方法来读取图像文件;
原文链接 FileReader来把文件读入内存,并且读取文件中的数据. readAsDataURL方法可以在浏览器主线程中异步访问文件系统,读取文件中的数据,且读取后 result 为 DataURL ...
- java读取复杂csv文件内容_java读取并导出多类型数据csv文件
1.主函数 public class csvtest { public static void main(String[] args) { List dataList = CSVUtils.impor ...
- java解析各种文档格式_java读取各类型的文件
用到的几个包 bcmail-jdk14-132.jar/bcprov-jdk14-132.jar/checkstyle-all-4.2.jar/FontBox-0.1.0-dev.jar/lucene ...
- 一个简单的更改让PyTorch读取表格数据的速度提高20倍:可大大加快深度学习训练的速度...
来源:DeepHub IMBA 本文约3000字,建议阅读5分钟 我在PyTorch中对表格的数据加载器进行的简单更改如何将训练速度提高了20倍以上,而循环没有任何变化! 深度学习:需要速度 在训练深 ...
- extjs 表格数据重新加载_一个简单的更改让PyTorch读取表格数据的速度提高20倍:可大大加快深度学习训练的速度...
来源:DeepHub IMBA 本文约3000字,建议阅读5分钟我在PyTorch中对表格的数据加载器进行的简单更改如何将训练速度提高了20倍以上,而循环没有任何变化! 深度学习:需要速度 在训练深度 ...
最新文章
- 马斯克说,特斯拉最新自动驾驶芯片性能是英伟达的7倍​
- ORA-00257: archiver error. Connect internal only, until freed
- 非凸函数上,随机梯度下降能否收敛?能,但有条件,且比凸函数收敛更难
- Django集合Ueditor
- Iphone开发之音频101(part 2):转换和录音
- 线性回归用matlab怎么做,matlab中如何应用regress()函数进行线性回归分析?
- 网站项目管理规范手册
- 如何隐藏地址栏中的真实地址_代理IP如何隐藏真实IP
- 中鸣机器人编程教程 c 语言,中鸣教育机器人简介.doc
- php实现文件下载,提示压缩包损坏解决方法
- 我喜欢计算机作文300字,关于我喜欢作文300字
- wangeditor富文本编辑器的使用
- Kali Linux签名失效的解决方法
- 一千座5G工厂的花苞
- 罗杨美慧 20190919-6 四则运算试题生成,结对
- qq邮箱如何在win10邮箱连接到服务器,Win10系统自带Mail应用添加QQ邮箱的方法
- 新5G网络架构较复杂 设立面对不少挑战
- VQLS:变分量子算法解线性方程组
- 一、在GPU上执行运算
- 南开大学20春计算机应用基础在线作业,南开大学20春学期计算机应用基础在线作业参考答案...