这是我在Form1的顶部做:如何从textBox中将文本写入文本文件并从文件读回到文本框?
string line;
StreamWriter w;
StreamReader sr;
然后在构造函数中:
if (File.Exists(@"d:\test.txt"))
{
sr = new StreamReader(@"d:\test.txt");
line = sr.ReadToEnd();
textBox3.Text = line;
sr.Close();
sr.Dispose();
}
w = new StreamWriter(@"d:\test.txt");
在textBox3文本已改变事件
然后:
private void textBox3_TextChanged(object sender, EventArgs e)
{
if (w == null)
{
w = new StreamWriter(@"d:\ircbotsettings.txt");
w.Write(line);
w.Write(textBox3.Text);
}
}
然后在Form1中闭幕事件,并在我在两个地方添加的按钮点击事件:
w.Close();
w.Dispose();
在textBox文本中改变了事件im试图再次打开/创建文件以写入第一个写入行,如果其中有任何字符串,然后从textBox写入新的文本。
问题是,当IM运行现在的程序其将自动第一至textBox3文本改变事件,扔就行了异常:
w = new StreamWriter(@"d:\ircbotsettings.txt");
该进程无法访问该文件“d:\ ircbotsettings。 TXT”,因为它正被另一个进程使用
我想要做的是:
当键入实时文本框中任何文本,将其保存到文本文件。 当我退出程序并再次运行时,从文本文件中读取/加载文本并将其添加/放入文本框中。
所以文本文件应该包含每次只有一个字符串,每次当运行程序时它应该读取/加载字符串回到文本框。
将内容实时写入文件是一个糟糕的主意。我们通常定期写入一些更改的数据块。 –
每次更改文本时,都会重新打开事件处理程序中的文件,但不会关闭/取消它。 –