[英]Converting string to System.IO.Stream
我創建了一個可序列化的類並添加了一些對象。 現在,我想在單擊按鈕時創建一個基於該類的xml文件,所以我這樣做了:
private void Button1_Clicked(object sender, EventArgs e)
{
string fileName = "Data.xml";
MySerializableClass msc = new MySerializableClass();
XmlSerializer serializer = new XmlSerializer(typeof(MySerializableClass));
StreamWriter sw = new StreamWriter(fileName, Encoding.UTF8); //'filename' is underlined
serializer.Serialize(sw, msc);
sw.Close(); //'Close' is underlined
//'StreamWriter' does not contain a definition for 'Close' [...]
}
不幸的是,我收到以下錯誤: 無法 從 'String' 轉換 為 'System.IO.Stream' 。 這是什么意思? 我不明白為什么無法對UTF8進行編碼。 不使用編碼會給我同樣的錯誤。
streamwriter構造函數參數錯誤..
string fileName = "your file path";
using(FileStream fileStream = new FileStream(fileName, FileMode.OpenOrCreate))
{
using (StreamWriter sw = new StreamWriter(fileStream, Encoding.UTF8))
{
MySerializableClass msc = new MySerializableClass();
XmlSerializer serializer = new XmlSerializer(typeof(MySerializableClass));
serializer.Serialize(sw, msc);
}
}
如果要不使用FileStream,請使用此構造函數。StreamWriter(字符串路徑,布爾附加,編碼編碼)
string fileName = "your file path";
using (StreamWriter sw = new StreamWriter(fileName, true, Encoding.UTF8))
{
MySerializableClass msc = new MySerializableClass();
XmlSerializer serializer = new XmlSerializer(typeof(MySerializableClass));
serializer.Serialize(sw, msc);
}
請參閱StreamWriter
的文檔。 https://msdn.microsoft.com/zh-CN/library/system.io.streamwriter(v=vs.110).aspx
試試這個重載StreamWriter sw = new StreamWriter(fileName, false, Encoding.UTF8);
或者,您將需要從“ data.xml”文件創建一個Stream,而不僅僅是傳遞文件名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.