内存流为空
|
我需要从不同的来源(函数)生成一个巨大的xml文件。我决定使用“ 0”,因为它比“ 1”使用更少的内存。
首先,以基础underlying3ѭ发起initiate2ѭ
MemoryStream ms = new MemoryStream();
XmlTextWriter xmlWriter = new XmlTextWriter(ms, new UTF8Encoding(false, false));
xmlWriter.Formatting = Formatting.Indented;
然后,我将XmlWriter
(注意xml writer保持打开状态直到最后)传递给一个函数,以生成XML文件的开头:
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement();
// xmlWriter.WriteEndElement(); // Do not write the end of root element in first function, to add more xml elements in following functions
xmlWriter.WriteEndDocument();
xmlWriter.Flush();
但是我发现基础内存流为空(通过将字节数组转换为字符串和输出字符串)。有什么想法吗?
另外,我对如何从不同来源(函数)生成巨大的xml文件有一个普遍的疑问。我现在要做的是保持每个函数的ѭ2打开状态(我假设底层内存流也应打开)并写入。在第一个函数中,我不写根元素的结尾。在最后一个函数之后,我通过以下方式手动添加根元素的结尾:
string endRoot = \"</Root>\";
byte[] byteEndRoot = Encoding.ASCII.GetBytes(endRoot);
ms.Write(byteEndRoot, 0, byteEndRoot.Length);
不知道这是否行得通。
非常感谢!
没有找到相关结果
已邀请:
3 个回复
可扇胆
的调用外,如果使用ѭ10方法及其弟兄从Stream读取数据,则必须首先将Stream中的位置重置为起点。否则,将不会读取任何字节。
痰降锭骂奸
荆怖赡