Java中的文本文件拆分库

时间:2008-11-26 16:16:31

标签: java file

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

3 个答案:

答案 0 :(得分:4)

我不明白将CSV文件拆分成较小的文件会让您获得什么?使用Java,您可以随时阅读和处理文件,您无需一次性阅读...

答案 1 :(得分:2)

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

如果只是记录处理记录,则面向事件(SAX或StaX)解析将是最佳选择。对于记录处理记录,可能适用现有的“管道”工具包。

您可以使用this onethis Splitter.java等拆分器功能预处理文件。

答案 2 :(得分:0)

一旦文件被拆分,您打算如何分发作品?

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

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

或者,您可以查看Hadoop和Hadoop文件系统之类的内容,以便在不同节点之间移动文件。

通过将文件加载到缓存中,然后通过单独的线程分配要处理的文件的某些“块”,可以在本地计算机上完成相同的概念。网格计算的东西实际上只是针对非常大的问题,或者为您的解决方案提供透明的可扩展性。您可能需要注意IO瓶颈和锁,但是在文件拆分后将“作业”分配到的简单线程池可以正常工作。