为RichTextBox中的每一行写入.text到.text

时间:2013-11-25 23:50:04

标签: c#

您好我有这行代码将richTextBox的每一行写入我的.txt文件,但最后txt文件为空,但是在调试时它会读取每一行。我可以知道应该如何改进这些代码来做我想做的事情吗?

                string Path = (@"C:\Users\x\Documents\Visual Studio 2012\Projects\MTest\txtCmdLog.txt");
            StreamWriter sw = new StreamWriter(File.Open(Path, System.IO.FileMode.Append));

            for (int i = 0; i <= txtCmdLog.Lines.Length; i++)
            {
                 sw.WriteLine(txtCmdLog.Lines[i] + "\n");

            }

            sw.Close();

感谢您的时间。

3 个答案:

答案 0 :(得分:2)

将您的循环更改为:

for (int i = 0; i < txtCmdLog.Lines.Length; i++)
{
    sw.WriteLine(txtCmdLog.Lines[i]);
}

请勿在循环条件检查中使用<=。您也不需要在对WriteLine的调用中附加换行符,因为该方法已经写了换行符。

答案 1 :(得分:2)

要记住的要点:

1.您需要遍历0lines.Length-1。因此请移除=条件中的<=

2.处置StreamWriter对象使用using{}阻止,这样您就不需要调用close()Diposal

将关注StreamWriter对象的using {}
        string Path = (@"C:\Users\x\Documents\Visual Studio 2012\Projects\MTest\txtCmdLog.txt");
        using(StreamWriter sw = new StreamWriter(File.Open(Path, System.IO.FileMode.Append)))
        {
            for (int i = 0; i < txtCmdLog.Lines.Length; i++)
            {
                 sw.WriteLine(txtCmdLog.Lines[i] + "\n");

            }

        }

答案 2 :(得分:1)

这样做的简单方法是:

File.WriteAllLines(filename, arrayOfStrings);