您好我有这行代码将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();
感谢您的时间。
答案 0 :(得分:2)
将您的循环更改为:
for (int i = 0; i < txtCmdLog.Lines.Length; i++)
{
sw.WriteLine(txtCmdLog.Lines[i]);
}
请勿在循环条件检查中使用<=
。您也不需要在对WriteLine的调用中附加换行符,因为该方法已经写了换行符。
答案 1 :(得分:2)
要记住的要点:
1.您需要遍历0
到lines.Length-1
。因此请移除=
条件中的<=
。
2.处置StreamWriter
对象使用using{}
阻止,这样您就不需要调用close()
。
Diposal
块
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);