XMLStreamWriter - 将长字符串写入 xml writer 的问题

XMLStreamWriter - Issue writing long string to xml writer

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

writer.writeAttribute(key, escapedXML)

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

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

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

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

至此

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

我的问题已经解决了。