我正在做一個項目Windows窗體的Uni分配,我想搜索一個已經創建的文本文件來匹配名字和姓氏,然後寫入一些額外的信息,如果姓名和姓氏存在。我構建了代碼並且沒有顯示任何錯誤,但是當我運行並嘗試添加信息時,我被提供了一個基本上表示下一個進程的錯誤(Streamreader編寫器無法訪問該文件,因爲它已被另一進程使用)我假設這個過程是streamreader,我試圖編碼它停止閱讀無濟於事。我在我的前3個月學習編碼,如果可能的話,我會感謝一些幫助,我已經把我的代碼片段放在下面。c#如何結束流讀取器
//check if there is a file with that name
if (File.Exists(sFile))
{
using (StreamReader sr = new StreamReader(sFile))
{
//while there is more data to read
while (sr.Peek() != -1)
{
//read first name and last name
sFirstName = sr.ReadLine();
sLastName = sr.ReadLine();
}
{
//does this name match?
if (sFirstName + sLastName == txtSearchName.Text)
sr.Close();
}
//Process write to file
using (StreamWriter sw = new StreamWriter(sFile, true))
{
sw.WriteLine("First Name:" + sFirstName);
sw.WriteLine("Last Name:" + sLastName);
sw.WriteLine("Gender:" + sGender);
}
StreamReader的右括號在哪裏。 using指令將處理流讀取器並釋放它對文件的鎖定,但是看起來好像在打開作者之後纔會關閉它? – Wheels73
讀取輸入文件,寫入臨時文件,然後用臨時文件壓碎輸入文件。 –
你確定你的代碼的這部分被執行了嗎?因爲它似乎在嘗試同時讀取和寫入同一個文件。 (看起來像一個可怕的想法) –