簡體   English   中英

無法使用二進制文件寫入文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM