【问题标题】:how does XMLReader workXMLReader 是如何工作的
【发布时间】:2014-10-17 18:32:44
【问题描述】:

如果我使用 XMLReader.Create 并将其传递给流,则 XMLReader 似乎在我调用任何读取方法之前就读取了整个流,因为流的位置属性会更改以匹配流的长度。然后 XMLReader 是否将整个 xml 存储在内存中?它会出现,因为我可以调用 XmlReader.Read 并且流位置永远不会改变。 XmlReader 是否可以不消耗整个流?

【问题讨论】:

标签: c# .net xmlreader


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 2017-07-24
    • 2016-11-13
    • 2017-10-11
    • 2021-10-13
    • 2011-02-24
    • 2013-11-16
    相关资源
    最近更新 更多