2

为什么这段代码不将我的字符串写入文件:

 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();

        }
4

4 回答 4

10

看看这一行:

using (BinaryWriter bw = new BinaryWriter(ms))

您正在写回 MemoryStream。你要:

using (BinaryWriter bw = new BinaryWriter(fs))

话虽如此,这是一种非常讨厌的写入文件的方式,其中包含各种不必要的步骤。希望这只是尝试找出为什么其他东西不起作用的实验 - 但如果您的真实代码实际上是这样的,请详细说明您正在尝试做什么,我们可以帮助您整理它。

于 2010-07-15T09:26:51.200 回答
3

您将 MemoryStream ms 用于输入和输出。换行

using (BinaryWriter bw = new BinaryWriter(ms))

using (BinaryWriter bw = new BinaryWriter(fs))
于 2010-07-15T09:27:33.813 回答
0

您正在用最困难的方式写文本。您应该使用 File.WriteAllText (正如亚当所说)或 Append text 方法。如果您想使用具有特殊编码的写入器,则应该使用 StreamWriter,因为它适用于文本数据并且您可以设置文件的编码。

于 2010-07-15T10:39:18.157 回答
0

或者:

File.WriteAllText("myfile", "mytext");
于 2010-07-15T09:26:57.393 回答