gpt4 book ai didi

java - 是否可以使用 SAX 解析器解析大小为 800 MB 的大型 xml 文件

转载 作者:行者123 更新时间:2023-12-01 17:31:19 29 4
gpt4 key购买 nike

我正在解析 transxchange 数据,其中包含一些非常大的文件,接近 800 MB。当我尝试解析这些文件时,出现以下错误。

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
=======================================================================
at java.util.ArrayList.<init>(Unknown Source)
at java.util.ArrayList.<init>(Unknown Source)
at JourneyPatternSections.<init>(JourneyPatternSections.java:21)
at ReadBusData.startElement(ReadBusData.java:131)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at ReadBusData.parseDocument(ReadBusData.java:51)
at ReadBusData.<init>(ReadBusData.java:41)
at ReadBusData.main(ReadBusData.java:218).

我正在关注this教程。
任何人都可以帮助我吗?

最佳答案

Q: Is It possible to parse large xml file which has size 800 MB using SAX Parser?

答:是的,当然!

问题不在于 SAX。 SAX 实际上是处理大文件的理想选择。

问题显然出在您的数组列表上。

有多大?

其他结构有多大?

您实际上需要存储您为其分配空间的所有数据吗?

您是否使用任何 VM 标志来运行程序以分配更多内存?

您的电脑有多少内存?可以在支持更多内存的 PC 上运行吗? 64 位电脑?

您使用的是 64 位 JVM 吗?

建议:下载并试用 Visual VM 以在代码级别解决问题:

您可能会发现您分配的数据比预期多得多。

恕我直言...

关于java - 是否可以使用 SAX 解析器解析大小为 800 MB 的大型 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10594398/

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