【发布时间】:2013-11-16 22:18:22
【问题描述】:
我在 ArrayList (boList) 中有可序列化的关系 javabean BO,我想使用 XMLEncoder 或其他一些标准方法将其写入 XML。
使用:
XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(
new FileOutputStream("C:/tmp/test.xml")));
encoder.writeObject(boList);
encoder.close();
我的内存用完了。但是,如果我这样做:
for(BO bo : boList)
{
encoder.writeObject(bo);
encoder.flush();
}
encoder.close();
它使用很少的内存即可完美运行。我知道 flush() 将生成的 xml 写入文件并释放引用的内存,这是有意义的。我怀疑在编写 boList XMLEncoder 时,它会尝试在写入之前生成所有 XML,但内存不足。
我需要能够将 boList 写入 XML,因为它将是父 BO 中的一个字段,它将被写入 XML。在我对每个单独的对象调用“writeObject”的情况下,如何让它与列表一起运行?是否有替代 XMLEncoder 的方法可以实现这一点,并且使用起来非常简单?这必须使用没有第三方库的标准 JRE/Java 6 功能来完成。谢谢!
【问题讨论】:
标签: java xml xml-serialization javabeans