java - 如何以内存高效的方式将 xml 写入 bean 网络流

标签 java xml memory xml-serialization jdom

<分区>

编辑以更清楚地指定场景。

我必须写一个 xml 文件,信息来自几个 bean(甚至不是整个 bean,只是其中一些的子集),一些 bean 包含列表等。所以我不能只给 xstream 一个根 bean,让它编写 xml。此外,某些格式可能需要满足某些条件,但上一期是一个

现在我正在使用 JDOM 在内存中创建文档,最终我使用 XMLOutputter 将文档写入文件。

但是我想写的 beans 可能有非常大的其他 beans 列表,并且使用的内存可能非常高。

所以我怀疑在内存方面应该有更好的方法? 我已经使用 xstream 在较大的 bean 中为一些 bean 创建了 xml,并将它们作为元素附加到 JDOM。

我希望使用拉式解析器解析 xml 的内存效率更高,这同样适用于编写 xml。

最佳答案

让我直截了本地说: 你从一棵 bean 树开始。您希望使用它们来构造一个遵循其结构但具有自己的语法/模式的 XML 文档,因此简单的 bean XML 序列化是不可能的...

如果是这样,Blaise Doughan 推荐的 JAXB 是一个很好的建议。但是,如果您需要对 XML 格式进行更精细的控制,则需要执行一些高度特定的序列化,或者您可能希望在创建 XML 时删除一些 bean 引用以允许在执行期间进行垃圾收集,那么 Streaming API XML (StAX) 可能是您所需要的。您可以使用它向流中写入 XML 结构。

http://download.oracle.com/javase/6/docs/api/javax/xml/stream/package-summary.html

抱歉,如果这不完全是您的意思。如果我弄错了,你能给我们一个小的使用场景吗?

关于java - 如何以内存高效的方式将 xml 写入 bean 网络流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5550740/

相关文章:

java - 在这种情况下,编译器中实际发生了什么

XmlValidatingReader 类已过时

c - OpenHashing 分段故障

memory - erlang:memory() 与 memsup:get_system_memory_data()

java - 静态工厂和依赖注入(inject)

java - 这个程序中正确的 Big-O 值是什么?

xml - JAXB Unmarshal 创建了一个空对象

java - 如何从applicationContext.xml中的bean读取值?

c# - 如何获取内存中的对象大小?

java - 在生产环境中实现最佳性能的 APR