Java DocumentBuilder的“parse”方法是否将整个XML文件放入内存?

Java DocumentBuilder的“parse”方法是否将整个XML文件放入内存?,java,xml,Java,Xml,我正在构建一个Java应用程序,它将有一个包含大量信息的大XML文件。我还将有另一个文件——可能是二进制文件——它将有索引来组织该XML文件。例如,如果XML文件有1000个寄存器,并且访问二进制文件时,我发现我想加载寄存器号687,我的想法是直接从de XML文件加载它,而不需要将整个XML文件加载到内存中 我的第一个想法是使用JavaDOM文档对象模型来处理XML。要将XML文件解析为Java对象,我了解到最好的方法是DocumentBuilder的方法parse,它返回一个表示XML文件的

我正在构建一个Java应用程序,它将有一个包含大量信息的大XML文件。我还将有另一个文件——可能是二进制文件——它将有索引来组织该XML文件。例如,如果XML文件有1000个寄存器,并且访问二进制文件时,我发现我想加载寄存器号687,我的想法是直接从de XML文件加载它,而不需要将整个XML文件加载到内存中

我的第一个想法是使用JavaDOM文档对象模型来处理XML。要将XML文件解析为Java对象,我了解到最好的方法是DocumentBuilder的方法parse,它返回一个表示XML文件的树

所以,我的问题是:当我使用这个方法时,它必须将整个XML文件加载到内存中来解析文件,或者它会根据我需要在程序中使用的文件的哪些部分来缓慢地解析文件


抱歉,如果我提出了愚蠢的问题,欢迎提供任何帮助/建议!请记住,我的目标是尽可能少地访问磁盘!谢谢

简单的回答是,是的,DOM是XML@MadProgrammer谢谢你的回答。那么,你知道我该怎么做吗?将整个XML文件加载到内存中并不是我想要的。如果您想要随机访问XML文件中的数据,您需要以某种方式将内容映射到内存中,您可以使用SAX解析器并构建自己的轻量级模型。如果不需要随机访问XML,也可以使用SAX解析器,在解析XML文件时从二进制文件加载信息