2010-02-26 42 views
3

我有一个字符串(xml),我需要将它暂时存储为内存流,然后将其作为文件存储在最后。如何实现字符串(xml)到内存流以C#文件?

我知道我们可以直接在文件中使用textwriter存储xml,但这不是我想要的。我想要将字符串转换为内存流,然后写入文件流。

我该如何执行此操作?共享代码将非常有帮助。

+0

您可以用System.Linq.XDocument加载字符串,做任何你需要的XML,然后调用的XDocument的Save()保存到文件中。 – 2010-02-26 16:41:38

+0

@马克拜尔斯,谢谢你的时间。好!由于NDA,我不能说一切。我们收到了来自第三方供应商的少量dll。其中一种方法接受存储流作为输入,处理它并为我们提供另一个存储流作为输出。我想传递一个xml字符串并将处理过的内存流存储在一个文件中。 – funwithcoding 2010-02-26 18:45:39

回答

9

如果我找到你,你想打开表示XML的char数组(字符串)上的内存流?

string xml; 

MemoryStream ms = new MemoryStream(Encoding.ASCII.GetBytes(xml)); 

ms.DuStuf(); 

fileStream.Write(ms.GetBuffer(), 0, xml.Length); 
3

如果您使用.NET 4,这是很容易 - 你可以使用Stream.CopyTo复制您的MemoryStream到一个FileStream直接。

如果您使用的是旧版本,则需要自行实施。这往往是这样的:

byte[] buffer = new byte[4096]; 
int read; 
while ((read = source.Read(buffer, 0, buffer.Length)) != 0) 
{ 
    destination.Write(buffer, 0, read); 
}