当前位置: 首页 > news >正文

即墨网站优化爱站网反链查询

即墨网站优化,爱站网反链查询,北京市住房和城乡建设部官方网站,网页打开app wordpressuniVocity-parsers 是一个开源的Java项目。 针对CSV/TSV/定宽文本文件的解析,它以简洁的API开发接口提供了丰富而强大的功能。后面会做进一步介绍。和其他解析库有所不同,uniVocity-parsers以高性能、可扩展为出发点,设计了一套自有架构。基于…

uniVocity-parsers 是一个开源的Java项目。 针对CSV/TSV/定宽文本文件的解析,它以简洁的API开发接口提供了丰富而强大的功能。后面会做进一步介绍。

和其他解析库有所不同,uniVocity-parsers以高性能、可扩展为出发点,设计了一套自有架构。基于这套架构,开发者可以构建出新的文件解析器。

1. 概述

作为一名Java开发者,我目前正在参与开发一个Web项目,该项目帮助通信运营商评估当前的网络,并给出解决方案。 在该项目中,CSV文件扮演着至关重要的角色,它是运营商网络数据的承载格式,这些数据包含宽带用户的实时在线状态(在线/离线),及其实时流量。 通常来讲,单个CSV文件可以达到1GB以上,包含上百万条记录。项目当前采用的CSV解析库为JavaCSV。

随着运营商网络规模的扩张,以及系统监控周期的增加,CSV文件迅速变大。 项目组不得不解决超大CSV数据解析所带来的性能问题(甚至包括秒级的解析效率),以及业务变化带来的功能扩展受到限制的问题。

经过很多次的测试和分析,我们最终确定采用uniVocity-parsers作为CSV文件解析库, 实践之后发现它确实解决了我们的问题。除了更好的性能和扩展性之外,该库还为开发者提供了简洁易懂的API、开发文档和教程。 对于高级的功能扩展诉求,官方提供对应的收费服务。

该项目托管在Github上,截至目前,已有69个star和10个fork。你可以在这里和这里找到相关开发文档和教程,也可以在这里找到更多例子和新闻。

值得关注的是,Apache社区知名的开源项目Apache Camel也集成了uniVocity-parsers ,作为该项目解析CSV/TSV/定宽文本文件的推荐库。 更多信息请查看这里。

2. 安装

该项目同时也发发布在了Maven的中心仓库,因此也可以在你的pom.xml中直接添加如下代码:

com.univocity

univocity-parsers

1.5.1

3. 特性简介

uniVocity-parsers提供了一系列强大的功能,能够很好的满足你所有关于列表式数据的处理需求。如下图表展现了部分关键功能:

052339591266695.png

4. 读取列表式数据

读取CSV中的所有行CsvParser parser = new CsvParser(new CsvParserSettings());

List allRows = parser.parseAll(getReader("/examples/example.csv"));

5. 写入列表式数据

仅需2行代码,就可以完成CSV格式数据的写入:CsvWriter writer = new CsvWriter(outputWriter, new CsvWriterSettings());

writer.writeRowsAndClose(rows);

6. 性能与扩展性

如下为我们对比 uniVocity-parsers 和 JavaCSV 的测试对比表:文件大小JavaCSV解析耗时niVocity-parsers解析耗时

10MB, 145453 行1138ms1138ms

100MB, 809008 行23s6s

434MB, 4499959 行91s28s

1GB, 23803502 行245s70s

7. 设计与实现

在uniVocity-parsers中,有一些核心的数据处理模块,他们负责对数据按行读写、按列读写,以及行列数据的转换。如下是这些核心模块的关系图:

052340335951999.png

你可以通过实现 RowProcessor 接口或者继承其实现类来开发自己的数据处理模块。如下代码中,我通过简单的内部匿名类开发了自己的数据处理模块。

CsvParserSettings settings = new CsvParserSettings();

settings.setRowProcessor(new RowProcessor() {

StringBuilder stringBuilder = new StringBuilder();

/**

* 处理第一行数据之前,你可以根据业务逻辑做相关初始化配置。

**/

@Override

public void processStarted(ParsingContext context) {

System.out.println("Started to process rows of data.");

}

/**

* 根据你的业务逻辑,处理行数据

**/

@Override

public void rowProcessed(String[] row, ParsingContext context) {

System.out.println("The row in line #" + context.currentLine() + ": ");

for (String col : row) {

stringBuilder.append(col).append("\t");

}

}

/**

* 所有行数据处理完成之后,做清理工作。

**/

@Override

public void processEnded(ParsingContext context) {

System.out.println("Finished processing rows of data.");

System.out.println(stringBuilder);

}

});

CsvParser parser = new CsvParser(settings);

List allRows = parser.parseAll(new FileReader("/myFile.csv"));

uniVocity-parsers库提供的特性不止这些,由于它在我们的项目中发挥了很大的作用,推荐你进一步了解。

http://www.lbrq.cn/news/2806831.html

相关文章:

  • 音乐网站的音乐怎么做音乐试听自助建站免费建站平台
  • 贵阳生态文明建设委员会网站成全高清免费观看mv
  • 有学给宝宝做衣服的网站吗今日新闻大事件
  • 网站建设推广怎么做seo优化快排
  • 开个微网站需要什么淘宝店铺运营
  • 宁海县高质量营销型网站建设最火的推广平台
  • 做模板网站的公司深圳seo顾问
  • 网站备案注意什么国外免费网站域名服务器查询
  • 政府门户网站建设成人职业技能培训学校
  • 牛网站建设营销策划思路
  • 网站建设公司哪家好速找盛世传媒网络公司网站模板
  • 微网站建设公司搜索引擎网站提交入口
  • 鲜花网站建设论文十大营销案例分析
  • bontop外贸建站公司怎么样seo优化推广软件
  • 做网站送的手机站是什么it培训机构哪家好
  • 百度站长工具怎么推广网站广西seo经理
  • 医疗网站建设方案北京营销型网站
  • 电脑做服务器发布网站吗吉安seo
  • 网站建设公司包括哪些内容十大职业资格培训机构
  • wordpress站点路径网络营销的现状和发展趋势
  • 做网站网络营销注意2345网址导航电脑版
  • 慈溪怎么做网站新产品推广方案范文
  • 如何自己买域做网站企业网站模板 免费
  • 温州市网站建设公司建设网站的网站首页
  • 个人域名可以备案企业网站吗建网站设计
  • 福州网站网页设计竞猜世界杯
  • 怎么找淘宝客网站自媒体运营
  • 扬州网站建设seo外链优化方法
  • 有什么网站做交流会seo算法入门教程
  • 郑州web网站制作seo网站推广招聘
  • Day25 栈 队列 二叉树
  • 【Dubbo】高性能的 RPC
  • 8月22号打卡
  • 机器学习中的聚类与集成算法:从基础到应用
  • gRPC 与 HTTP 性能对比分析
  • 使用 X11 转发服务器界面