gpt4 book ai didi

java - 比较两个大型 xml 文件时出现内存不足错误

转载 作者:行者123 更新时间:2023-12-02 01:34:18 24 4
gpt4 key购买 nike

我正在尝试使用 XMLUNIT 比较两个大型 XML 文件,但收到“线程“main”java.lang.OutOfMemoryError 中的异常:Java 堆空间”

public static void main(String[] args) throws Exception {
FileReader file = new FileReader("C:/abc/a.xml");

FileReader file1 = new FileReader("C:/abc/b.xml");
assertXMLEquals(file, file1);
}


public static void assertXMLEquals(FileReader expectedXML, FileReader actualXML) throws Exception {

DetailedDiff difference = null;
try {
// Checks each Node
difference = new DetailedDiff(XMLUnit.compareXML(expectedXML, actualXML));
} catch (Exception e) {

}

if (!difference.similar()) {
List<Difference> AllDifferences = difference.getAllDifferences();
System.out.println("Xml comparison failed because of follwoing error/s : \n"+AllDifferences);
}
}

解决方案 - 我已在 Eclipse Run 配置中添加“-Xms2048M -Xmx2048M”作为参数。

最佳答案

我没有使用过 xmlunit。但是查看 xmlunit 文档,看起来您可以使用流作为输入。

例如:BufferedInputStream in = new BufferedInputStream(new FileInputStream(路径名))

使用流不会将整个文件一次加载到内存中。

但是要获得 OutOfMemoryError 异常,文件应该非常大。您还可以在启动时增加应用程序的最大堆大小。

例如:将最小堆大小 (xms) 和最大堆大小 (xmx) 增加到 2GB。

java -Xms2048mm -Xmx2048m

关于java - 比较两个大型 xml 文件时出现内存不足错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55471018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com