XMLReader是如何工作的

本文关键字:工作 何工作 XMLReader | 更新日期: 2023-09-27 18:26:52

如果我使用XMLReader.Create并将流传递给它,XMLReader甚至在我调用任何读取方法之前就已经读取了整个流,因为流的位置属性会更改为与流的长度相匹配。XMLReader是否将整个xml存储在内存中?它看起来就像我可以调用XmlReader.Read一样,流的位置永远不会改变。XmlReader是否可以不使用整个流?

XMLReader是如何工作的

XmlReader不会一次读取整个流,它一次只从流中读取(最多)8192个字节的块(如果Async设置为true,则读取更多),并将其存储在内部字节缓冲区中。显然,如果流的字节数少于此,它将在第一次Read()调用时读取所有字节。这很可能就是你正在经历的。