首页 / XML / 用Java创建和保存大型XML
用Java创建和保存大型XML
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了用Java创建和保存大型XML,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2001字,纯文字阅读大概需要3分钟。
内容图文
![用Java创建和保存大型XML](/upload/InfoBanner/zyjiaocheng/752/758f4a18e05341f3a6a9802f467c24b9.jpg)
我正在研究一个java应用程序,它的工作是创建和保存XML(大型).我得到的样本是300 MB XML文件.
该应用程序旨在从数据库中收集批量数据并以XML格式保存.该应用程序由于其大量的IO和内存使用量而被设计为处理MAX 3这样的并行请求.
现在的要求是使其最多可并行处理50个这样的请求.当前应用程序使用XMLbean创建XML,然后将其保存到文件系统.该应用程序在weblogic服务器上公开为Web服务(它位于64位操作系统上,Java MAX堆大小为4 GB).
我需要你的意见:
1)是否有一个与XSD一起使用的XML API,可用于以最小的开销创建200-200 MB的大型XML? XMLbean对我们来说很好,但是有什么东西可以更好地处理它吗?
2)将它保存到文件系统的最佳和最有效的内存方式是什么? – 我正在考虑将当前的编写器更改为bufferedWriter,并在物理写入磁盘之前将其保存到内存中. – 增加它会有任何副作用吗?
3)如果对技术选择和服务器等没有限制 – 什么是理想的解决方案!
编辑1#数据库访问速度很快(约占总时间的5%). XML的创建很慢(占用80%).节省它需要15%(但有很多改进,我看??到我可以这样做,所以我并不担心这一点). – 谢谢路易斯.
解决方法:
我有一个类似的问题.服务器在XML文件中使用JDOM编写数据.多年来,这些数据越来越大,服务器越来越慢,内存使用量也越来越大.原因如下:
服务器在大哈希表和列表中累积数据.在作业结束时,他在内存中创建了带有JDOM的XML文档,而不是将其写入磁盘.
我改变了XML编写以使用流方法和XMLStreamWriter
唯一的问题是,写入的xml文件不是很漂亮.这可以通过IndentingXMLStreamWriter解决
代码示例如下:
FileOutputStream fileOutputStream = new FileOutputStream(outXmlFile);
XMLStreamWriter defaultWriter = factory.createXMLStreamWriter(fileOutputStream, encoding);
IndentingXMLStreamWriter writer = new IndentingXMLStreamWriter(defaultWriter);
writer.setIndentStep(" ");
try
{
writer.writeStartDocument(encoding, "1.0");
if (stylesheet != null)
{
writer.writeProcessingInstruction("xml-stylesheet", "type='text/xsl' href='" + stylesheet + "'");
writer.writeCharacters("\n");
}
writer.writeStartElement(TAG_ROOT);
writer.writeAttribute(TAG_OBJECT_TYPE, rootObject.getClass().getSimpleName());
...
writer.writeEndElement();
writer.writeEndDocument();
}
finally
{
writer.flush();
writer.close();
fileOutputStream.close();
}
内容总结
以上是互联网集市为您收集整理的用Java创建和保存大型XML全部内容,希望文章能够帮你解决用Java创建和保存大型XML所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。