XMLReader是如何工作的
本文关键字:工作 何工作 XMLReader | 更新日期: 2023-09-27 18:26:52
如果我使用XMLReader.Create并将流传递给它,XMLReader甚至在我调用任何读取方法之前就已经读取了整个流,因为流的位置属性会更改为与流的长度相匹配。XMLReader是否将整个xml存储在内存中?它看起来就像我可以调用XmlReader.Read一样,流的位置永远不会改变。XmlReader是否可以不使用整个流?
XmlReader
不会一次读取整个流,它一次只从流中读取(最多)8192个字节的块(如果Async
设置为true,则读取更多),并将其存储在内部字节缓冲区中。显然,如果流的字节数少于此,它将在第一次Read()
调用时读取所有字节。这很可能就是你正在经历的。