[英]Can't write to file using binarywriter
為什么這段代碼不會將我的字符串寫入文件:
string file = "Myfile.txt";
MemoryStream ms = new MemoryStream();
void writeToFile(string text)
{
System.Text.ASCIIEncoding encoding=new System.Text.ASCIIEncoding();
byte[] barr = encoding.GetBytes(text);
ms.Write(barr, 0, barr.Length);
using (FileStream fs = new FileStream(file, FileMode.OpenOrCreate))
{
using (BinaryWriter bw = new BinaryWriter(ms))
{
bw.Write(ms.ToArray());
}
}
}
static void Main(string[] args)
{
Program p = new Program();
p.writeToFile("Tony Test");
Console.ReadLine();
}
看看這一行:
using (BinaryWriter bw = new BinaryWriter(ms))
你正在寫回MemoryStream 。 你要:
using (BinaryWriter bw = new BinaryWriter(fs))
話雖如此,這是一種非常討厭的寫入文件的方式,有各種不必要的步驟。 希望這只是嘗試解決為什么其他東西不起作用的實驗 - 但如果您的真實代碼實際上是這樣的,請詳細說明您正在嘗試做什么,我們可以幫助您整理它。
您正在使用MemoryStream ms進行輸入和輸出。 改變線
using (BinaryWriter bw = new BinaryWriter(ms))
至
using (BinaryWriter bw = new BinaryWriter(fs))
或者:
File.WriteAllText("myfile", "mytext");
你正在用最難的方式寫文字。 你應該使用File.WriteAllText(如Adam所說)或附加文本方法。 如果要使用具有特殊編碼的編寫器,則應使用StreamWriter,因為它可以處理文本數據,您可以設置文件的編碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.