【发布时间】:2016-02-03 08:41:22
【问题描述】:
我有超过 100MB 或更多的大型 XML 文件。我使用此代码。
StringWriter writer = new StringWriter();
DocumentBuilderFactory domFact = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = domFact.newDocumentBuilder();
DOMSource domSource = new DOMSource(document);
StreamResult result = new StreamResult(writer);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
return writer.toString();
但这对我不起作用。我想将我的文件在数据库中保存为 CLOB。它是 SQL 数据库。有什么办法吗?如何保存我的文件。
【问题讨论】:
-
什么不起作用?你要写入数据库的代码是什么?
-
线程“主”java.lang.OutOfMemoryError 中的异常:Java 堆空间。我想,我需要这样 -Xmx1024m。
-
当你使用 DOM 时,整个 XML 将被读入你的内存,一旦达到最大值就会抛出这个异常。 CLOB 是必需的吗? Insead 你可以使用 BLOB 或 bytea(如果你使用 postgresql)
-
感谢您的回答。我需要找到另一种方法来做到这一点。由于旧数据,我无法转换为 Blob。
-
不要使用 DOM,而是使用 stax 或 sax。看看here
标签: java sql xml document clob