我想将大型xml分成小块.我正在使用VTDGen将xml文件拆分成小块,它适用于文件大小< 2 GB. VTD-xml使用IN-Memory来解析xml,我不想将xml加载到内存中.所以我试图使用VTDGenHuge映射内存. 代码适用于VTDGen,但是当我使用VTDGenHuge它不起作用.

String prefix = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+"\n";

String suffix = "\n\n";

try {

VTDGenHuge vg = new VTDGenHuge();

if (vg.parseFile("C:\\Users\\abc\\Desktop\\latestxml\\Input_1.xml", true,VTDGenHuge.MEM_MAPPED)) {

int splitBy = ;

System.out.println("Started time"+ new Date());

VTDNavHuge vn = vg.getNav();

AutoPilotHuge ap = new AutoPilotHuge(vn);

ap.selectXPath("/Employees/Employee");

FastLongBuffer flb = new FastLongBuffer(4);

int i;

byte[] xml = vn.getXML().getBytes();

while ((i = ap.evalXPath()) != -1) {

flb.append(vn.getElementFragment());

}

int size = flb.size();

if (size != 0) {

File fo = null;

FileOutputStream fos = null;

for (int k = 0; k < size; k++) {

if (k % splitBy == 0) {

if (fo != null) {

fos.write(suffix.getBytes());

fos.close();

fo = null;

}

}

if (fo == null) {

fo = new File("C:\\Users\\abc\\Desktop\\Test\\xml\\"+"out" + k + ".xml");

fos = new FileOutputStream(fo);

fos.write(prefix.getBytes());

}

fos.write("\n".getBytes());

fos.write(xml, flb.lower32At(k), flb.upper32At(k));

}

if (fo != null) {

fos.write(suffix.getBytes());

fos.close();

fo = null;

}

}

}

} catch (Exception e) {

e.printStackTrace();

}

我得到NUll值为“byte [] xml = vn.getXML().getBytes();”

当你做syso vn.getXML()时,你得到了对象的价值.但是“getBytes()”返回null.我不知道为什么.但是如果你做“byteAt(x)”x =任何长值它返回值.

我的xml文件是:

29

Pankaj

Male

Java Developer

35

Lisa

Female

CEO

40

Tom

Male

Manager

29

Pankaj

Male

Java Developer

35

Lisa

Female

CEO

40

Tom

Male

Manager

我想这样出来.

29

Pankaj

Male

Java Developer

35

Lisa

Female

CEO

40

Tom

Male

Manager

29

Pankaj

Male

Java Developer

35

Lisa

Female

CEO

40

Tom

Male

Manager

java xml 拆分_java – 如何使用VTDGenHuge将大型xml拆分成小块?相关推荐

  1. java中拼接xml方法_Java常用工具类,拼接XML格式的字符串,非常好用

    import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.u ...

  2. java post返回xml数据类型_Java 通过HttpURLConnection Post方式提交xml,并从服务端返回数据...

    这里面简单介绍下,HttpURLConnection连接服务器,并返回数据 客户端代码Java代码: import java.io.InputStream; import java.io.Output ...

  3. java dom4j 查找_java dom4j根据条件读取查找xml节点的方法

    1.假如有下面的books.xml要用java dom4j解析查找.<?xml  version="1.0" encoding="UTF-8"?> ...

  4. java 项目拆分_java – 多模块项目什么时候应该拆分成单独的存储库树?

    目前我们有一个标准的subversion存储库布局项目: ./树干 ./branches ./tags 然而,当我们沿着OSGi和模块化项目的道路前进时,我们最终得到了: ./trunk/bundle ...

  5. 数独java界面基础_Java从基础到进阶学习之路—-数独小游戏制作(二) | 学步园...

    详细设计 游戏数据结构设计 显然,需要存储数据的地方只有九宫格地图部分. 对于地图,很明显我们可以采用二维数组int [] [] game;来存储地图中的数据.但是int的二维数组虽然直接简单,但是还 ...

  6. java 静态成员 创建_Java学习笔记11---静态成员变量、静态代码块、成员变量及构造方法的初始化或调用顺序...

    当创建一个对象时,各种成员变量及构造方法的初始化或调用顺序是怎样的呢? (1).如果类尚未加载,则先初始化静态成员变量和静态代码块,再初始化成员变量,最后调用相应的构造方法: (2).如果类已经加载过 ...

  7. java 合并和拆分单元格_如何轻松合并和拆分电子书

    java 合并和拆分单元格 Whether you want to merge collections of short stories into a DIY anthology, or you wa ...

  8. xml文件上传服务器读取不了,使用Post从服务器读取大型xml文件时内存不足

    我正在使用以下代码从服务器获取xml文件,并且由于重型和大型xml文件,它崩溃并显示内存不足问题. public class Connect { static BufferedReader in=nu ...

  9. java xml 合并_Java中合并XML文档的设计与实现

    为了读写XML文件,需要导入如下JAVA包,"//"后为注释说明,笔者的环境是JDK1.3.1,在JDK 1.4.0中测试也通过. Import java.io. *; //Jav ...

最新文章

  1. Amber计算MM能量
  2. 【leetcode】Remove Linked List Elements(easy)
  3. [转]TensorFlow如何进行时序预测
  4. Java 重入锁 ReentrantLock 原理分析
  5. python打架动态图_20个GIF动图解释令程序员崩溃的瞬间 - 里维斯社
  6. java接口import_深入理解Java架构师在组件注册@Import导入容器(ImportSelector接口)的神操作!...
  7. linux中央服务器,如何在Linux上搭建一个Git中央仓库
  8. oracle转sparksql工具化,不使用Sqoop流程,利用CacheManager直接完成SparkSQL数据流直接回写Oracle...
  9. FreeRTOS任务挂起与解除
  10. 南风表情包小程序完整版源码 后台API+前端
  11. 做折线图_python的visvis库做折线图(line.py)代码详解
  12. Swift - RunTime(动态性) 问题 浅析
  13. php case 多个条件判断语句,Shell case语句(多分支条件判断)
  14. 程序员面试金典——4.5检查是否为BST
  15. 华硕固件默认ip_斐讯刷华硕固件后开启QOS限速的方法
  16. 朱军清华大学计算机系是哪里人,朱军(清华大学计算机系教授)_百度百科
  17. C语言男性标准体重,男性的标准体重是多少又如何计算?
  18. 【隧道篇 / IPsec】(5.6) ❀ 01. IPsec 结构与需求 ❀ FortiGate 防火墙
  19. 哈雷监控设备的操作及升级NSG9k6G
  20. 基于CANoen协议实现DSP系统与上位机CAN的通讯

热门文章

  1. TypeError: Caught TypeError in DataLoader worker process 0.
  2. 使用canvas操作图像
  3. JS 中的 Map,Set 和 iterable
  4. Open Drug Discovery Toolkit
  5. 附录4:Matplotlib实例记录
  6. java闭合数据_java多线程中线程封闭详解
  7. python mysql类里_Python MySql 操作类
  8. Nature、Science的绘图新宠,博导人论文覆盖率高达78%...
  9. 中农植保-昆虫进化与基因组诚聘博后及科研助理-三亚中国农业大学研究院
  10. 中科院亚热带生态所赵杰:喀斯特生态系统土壤微食物网组成与功能