在尝试将其保存到文件时,我一直在努力处理大量生成的字符串。
此字符串来自com.sap.conn.jco.JCoFunction.toXML();方法
我正在尝试这个:
public static void writeXML(JCoFunction jcoFunction, String path){
File f = new File("C:/XMLFile.xml");
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
bw.write("<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?> ");
bw.write(jcoFunction.toXML());
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
这应该创建一个大约45KB大小的xml。但是我得到了一个java堆空间错误。我需要帮助来制作一个有效的方法,以避免错误。
提前致谢!
答案 0 :(得分:0)
我不了解JCoFunction。但是,试试这段代码。
[["text", "```ruby\r\ndef hello\r\nputs \"hello world!\"\r\nend\r\n```"]
答案 1 :(得分:0)
如果XML数据确实只是45KB整体,那么你配置的堆大小太小,或者你遇到了JCo中的错误(例如内部循环递归循环)。
如果还没有使用最新的JCo补丁级别,我会先安装并尝试这个。也许这个潜在的错误已经被修复了。最新的JCo补丁级别目前为3.0.16。
如果这没有帮助,请增加Java堆空间,例如:通过在启动Java程序时指定JVM选项-Xmx1024m(或-Xmx2048m甚至更大)来实现。
如果仍然无法解决问题,您可能需要向SAP支持人员解决此问题。
此外,您可以打开JCo跟踪级别8并检查JCo跟踪在JCoFunction实例中实际传输/存储的数据量。