首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的文本文件拆分库

Java中的文本文件拆分库
EN

Stack Overflow用户
提问于 2008-11-26 16:16:31
回答 3查看 3.3K关注 0票数 1

我的程序接收大型CSV文件并将其转换为XML文件。为了有更好的性能,我想把这个文件分成(例如) 500行的小段。可用于拆分文本文件的Java库有哪些?

EN

回答 3

Stack Overflow用户

发布于 2008-11-26 16:54:53

我不明白将CSV文件拆分成更小的文件会得到什么?使用Java,你可以边读边处理文件,你不必一次读完所有的文件……

票数 4
EN

Stack Overflow用户

发布于 2008-11-26 16:22:20

您打算如何处理这些数据?

如果只是一个记录一个记录地处理,那么面向事件(SAX或StaX)解析将是可行的。对于逐条记录的处理,现有的“流水线”工具包可能适用。

您可以使用像this onethis Splitter.java这样的拆分器功能对文件进行预处理。

票数 2
EN

Stack Overflow用户

发布于 2008-11-27 11:55:18

文件拆分后,您计划如何分发工作?

我在一个名为GridGain的框架上做了类似的事情-它是一个网格计算框架,允许您在计算机网格上执行任务。

有了它,您就可以使用缓存提供程序(如JBoss缓存)将文件分发到多个节点,指定开始和结束行号以及进程。下面的GridGain示例概述了这一点:http://www.gridgainsystems.com/wiki/display/GG15UG/Affinity+MapReduce+with+JBoss+Cache

或者,您可以使用Hadoop和Hadoop文件系统在不同节点之间移动文件。

同样的概念也可以在本地机器上实现,方法是将文件加载到缓存中,然后分配文件的某些“块”由单独的线程处理。网格计算的东西实际上只适用于非常大的问题,或者为您的解决方案提供一定程度的可伸缩性。您可能需要注意IO瓶颈和锁,但可以使用一个简单的线程池,在文件拆分后将“作业”分派到其中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/321267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档