2010-02-26 44 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); 
}