這是我在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」,因爲它正被另一個進程使用
我想要做的是:
當鍵入實時文本框中任何文本,將其保存到文本文件。 當我退出程序並再次運行時,從文本文件中讀取/加載文本並將其添加/放入文本框中。
所以文本文件應該包含每次只有一個字符串,每次當運行程序時它應該讀取/加載字符串回到文本框。
將內容實時寫入文件是一個糟糕的主意。我們通常定期寫入一些更改的數據塊。 –
每次更改文本時,都會重新打開事件處理程序中的文件,但不會關閉/取消它。 –