XMLStreamWriter - 将长字符串写入xml writer

时间:2017-05-31 15:21:42

标签: java xml gradle xmlstreamwriter

我正在开发一个涉及读取和写入xml文件的gradle项目。在尝试使用XMLStreamWriter将很长的转义xml字符串写入文件时,我遇到了一个问题。此字符串最终需要大约半小时写入文件并导致我的应用程序停止响应。当我调用该方法时会出现问题:

writer.writeAttribute(key, escapedXML)

奇怪的是,我已经将gradle项目导入了eclipse和intellij;当我在eclipse中运行应用程序并运行使用gradle创建的可执行jar时,问题出现了,但是,当我在intellij中运行程序时,它很快就完成了,没有任何问题。除了build.gradle文件中包含的依赖项之外,我还没有包含任何其他jar文件。我试图在两个IDE之间找到依赖关系或设置的差异,但我还没有找到任何东西。我还验证了两个IDE都在使用相同的JRE。我也试过运行jar,为应用程序分配了更多的内存,但这并没有帮助。我确定我错过了一些明显的东西,我真的很感激一些帮助。如果你能说出我失踪了什么,请告诉我。

更新:花了几天时间研究这个没有运气。我用intellij创建了一个可执行jar,但问题也存在于此。在eclipse和intellij中运行时,我还查看了应用程序的类路径。该路径包含来自jdk1.8.0_121 \ lib的几个jar文件,当在intellij中运行时,但在eclipse中运行时不包含。然后我复制了intellij类路径并运行了指定类路径的jar。仍然没有运气。我希望我提供了足够的细节来激发一些想法。任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我找出了问题的原因。显然,intellij自动将我的XMLStreamWriter的编码设置为UTF-8,而eclipse则不然。我改变了这个

 XMLStreamWriter xmlWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream);

到这个

XMLStreamWriter xmlWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream, "UTF-8");

我的问题已经解决了。