2014-10-17 57 views
-1

如果我使用XMLReader.Create並將其傳遞給一個流,那麼甚至在我調用任何讀取方法之前,XMLReader就會讀取整個流,因爲流的position屬性更改爲匹配流。然後XMLReader是否將整個xml存儲在內存中?它會出現,因爲我可以調用XmlReader.Read並且流的位置永遠不會改變。 XmlReader是否可以不使用整個流?XMLReader如何工作

+0

請看下面的鏈接,也許你需要在While循環中讀取你的數據。http://www.java2s.com/Code/CSharp/XML/ReadingfromanXMLfile.htm || [MSDN/Stackoverflow張貼](http://stackoverflow.com/questions/904129/how-to-use-xmlreader-class) – MethodMan 2014-10-17 18:36:46

回答

2

XmlReader不會一次讀取整個流,它每次只從流中讀取(最多)8192個字節的塊(或者更多,如果Async設置爲true)並將它們存儲在內部字節緩衝區中。顯然,如果你的數據流的字節數少於它,它會在第一個Read()調用中讀取它們。這可能是你正在經歷的。