使用Java中的Stax同时解析一个非常大的XML文件

时间:2016-08-19 10:14:41

标签: java xml concurrency stax

我需要根据某个键搜索并提取一个非常大的XML文件的子集。在非常大的文件(~20 GB)上,因为我使用的stax算法线性搜索文档,如果子集位于文件末尾则需要7分钟。我是Java和并发的新手,所以我的问题可能是天真的,也不是很清楚。那么,是否有可能在多个线程上运行相同的搜索方法,以便第一个在XML文档的开头开始,第二个在第100,000个字节之后,第三个在第200,000个字节...等等?除了Stax解析方法之外,我还在使用 FileInputStream 。我已经读过有一个 FileInputStream.skip()方法,它允许用户开始在某个字节位置读取文件。

基本上,我希望在文档的块上并行运行相同的进程。这是可能的,也是一个很好的优化,或者我只是不知道我在做什么/说什么?

0 个答案:

没有答案