网上基本使用readline读取,这样一行行读取太慢了.
我也看了好多使用apache-common包读取的. 也不是那么的快.
这里提供一种并行流的方式.仅供参考

你如果有更高效的读取方式,请在下方留言. 我真的需要…谢谢

将文件 读取为BufferedReader, 然后使用java8的并行流读取, 注意, 并行流不是线程安全的;

废话不多说, 上代码


```javaimport cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.TimeInterval;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import org.apache.commons.compress.utils.Lists;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.util.Collection;
import java.util.Collections;
import java.util.stream.Stream;import static com.example.mytest.test.Constant.bigCSV_50W;/*** 多线程读取CSV** @author: riyueming* @date: 2021/8/2* @description:*/
public class CsvThreadTest {/*** 多线程读取文件测试** @param args*/public static void main(String[] args) {TimeInterval timer = DateUtil.timer();//并行流 没有数据安全,需要synchronizedCollection<Object> objects = Collections.synchronizedCollection(Lists.newArrayList());File touch = FileUtil.touch("D:/data/unitedata/local/ftp_1.csv");FileInputStream fileInputStream = IoUtil.toStream(touch);BufferedReader utf8Reader = IoUtil.getUtf8Reader(fileInputStream);Stream<String> lines = utf8Reader.lines();lines.parallel().forEach(s ->{objects.add(s);});System.out.println(objects.size());System.out.println("-----执行结束-----" + timer.interval()+"ms");}
}```

其中"D:/data/unitedata/local/ftp_1.csv" 的数据量为50W条左右. 大小9M左右

其中内容只有一列uuid

运行效果:

再测试下 1000W的数据,结果如下

我已经测试过1000W 数据量,
如果使用readline读取 大约10s左右.
使用apache-common读取大约是8s左右.

最后提供上述代码使用了 hutool工具包

        <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.6.5</version></dependency>

java高效快速读取CSV文件相关推荐

  1. java读取csv文件_使用扫描仪读取Java中的CSV文件

    java读取csv文件 We can use Java Scanner Class to read CSV File in java. 我们可以使用Java扫描程序类在Java中读取CSV文件. 读取 ...

  2. openCsv读取csv文件

    https://blog.csdn.net/cat_book_milk/article/details/52953786 Java读取csv文件 https://blog.csdn.net/galen ...

  3. python导入csv数据例子-使用python读取csv文件快速插入数据库的实例

    如下所示: # -*- coding:utf-8 -*- # auth:ckf # date:20170703 import pandas as pd import cStringIO import ...

  4. java中iterator_如何在Java中读取CSV文件-Iterator和Decorator的案例研究

    java中iterator 在本文中,我将讨论如何使用Apache Common CSV读取CSV(逗号分隔值)文件. 从这个案例研究中,我们将学习如何在设计模式的上下文中使用Iterator和Dec ...

  5. 如何在Java中读取CSV文件-Iterator和Decorator的案例研究

    在本文中,我将讨论如何使用Apache Common CSV读取CSV(逗号分隔值)文件. 从这个案例研究中,我们将学习如何在设计模式的上下文中使用Iterator和Decorator来提高不同情况下 ...

  6. java将数据写入csv文件,从csv文件中读取数据

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java将数据写入csv文件,从csv文件中读取数据 测试代码 public static void main(String[] arges){/ ...

  7. java输出和读取CSV格式文件

    JavaでCSVファイルを出力する方法をていねいに解説! 输出CSV文件 package cn.itcast.mybatis.test;import java.io.BufferedWriter; i ...

  8. java读取csv文件的两种方式

    java读取csv文件的两种方式 1.CsvReader读取 import com.csvreader.CsvReader; /*** CsvReader 读取* @param filePath* @ ...

  9. java读取csv文件的行数_JMeter 读取 CSV 文件数据行数

    在用 JMeter 做测试时,经常需要调用外部 CSV 文件的数据到脚本中使用,如果我们想对 CSV 文件中数据的行数进行统计,这个怎么做呢? 针对上面表格的数据,我们一起来学习一下如何统计数据行数吧 ...

  10. Java文件读写和CSV文件解析(读取csv文件的一列或若干列)

    文件类 Java 读文件流的知识不可少,先复习一下吧! OREACLE JDK8 DOCS 文件类是Java IO的一个对象,用于指定文件的相关信息,位置和名称信息.如txt文件,csv文件对Java ...

最新文章

  1. pandas使用select_dtypes函数移除dataframe中指定数据类型的数据列(exclude columns based on the data type in dataframe)
  2. STM32寄存器与输入捕获
  3. 那个双非本科,还想转算法岗的姑娘,最后怎么了?
  4. ASMCMD 命令详解
  5. 积极参与开源项目,促进.NET Core生态社区发展
  6. STM32F103使用内部Flash保存参数
  7. C#LeetCode刷题,走进Google,走近人生
  8. Cesium入门-2-增加地形
  9. mysql密码加强_MySQL密码增强插件
  10. 他在计算机上工作英语翻译,英语翻译1.尽管他在手术中割破了手,但他仍在继续工作.(in spite of)2.计算机在现代生活中起着重要的作用.(...
  11. windows利用DOS窗口编译C++文件
  12. C# 未能加载文件或程序集“ Newtonsoft.Json” Json格式错误
  13. python3数据结构菜鸟教程_Python3
  14. MySQL十四:单表最大2000W行数据
  15. 企业知识、经验如何传承?知识管理系统告诉你
  16. 用netstat -ano查看本机端口详解
  17. 上海尤劲恩AI视觉检测为工业制造赋能,帮助企业实现智造升级
  18. AT88SC0104C读写程序
  19. Conditional Positional Encodings for Vision Transformers(论文阅读笔记)
  20. 交出2021年进步答卷,挚文集团如何做到稳中求进?

热门文章

  1. can总线程序讲解_汽车can总线工作原理及测量方法详解
  2. 如何让微信公众号的排名靠前些,文章的排名规则
  3. 世界坐标系和相机坐标系,图像坐标系的关系
  4. excel小写转大写公式_英文字母大小写的转换
  5. [关系图谱] 一.Gephi通过共现矩阵构建知网作者关系图谱
  6. python实现excel表格图片识别,并转换成excel文件
  7. 一句理解到底什么是雷达中的波位
  8. ps切图后 JAVA开发_ps切图抠图详解-web前端(转)
  9. hbuilder设置html格式,Hbuilder中如何设置格式化CSS代码为单行
  10. (大信号)运放的参数-压摆率