簡體   English   中英

為什么我的 StreamWriter 會覆蓋整個 .txt 文件?

[英]Why does my StreamWriter overwrite my whole .txt file?

我正在更改文本中的一個值,但相反,它覆蓋了我的整個 .txt 文件。

static void editClassMates(classMates[] classMateInfo)
{
    StreamWriter sw = new StreamWriter(@"C:\Users\Callum\Documents\class.txt");
    Console.Write("Who's number would you like to change? ");
    string classMateInput = Console.ReadLine();
    for (int i = 0; i < classMateInfo.Length; i++)
    {
        if (classMateInfo[i].last.Equals(classMateInput))
        {
            Console.Write("Enter new number: ");
            string temp = Console.ReadLine();
            int classMateNumber = Convert.ToInt32(temp);
            classMateInfo[i].ID = classMateNumber;
        }   
    }
    sw.Close();
}

我的代碼要求在我的 .txt 文件中輸入名稱。 一旦我指定了名稱,它就會循環直到我的輸入與我的 .txt 文件中的完全相同的名稱匹配。 我現在想改變他/她的號碼。 在我輸入一個數字后,我就有了一個方法來顯示列表和我所做的更改。 這有效,它向我顯示了我的原始數據以及我編輯過的值。

但是,我進入了我的 class.txt 文件,現在它完全是空白的。

我的問題是,我的代碼的哪一部分覆蓋了我的整個文件? 另外,如何正確更改/編輯/替換 .txt 文件中的特定值?

謝謝

new StreamWriter(@"C:\Users\Callum\Documents\class.txt", true)

您沒有使用重載來追加。 這在您鍵入時可以在 Intellisense 中輕松查看。

提示:File.Open-Method 更易於使用。 這篇SO 文章中的主題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM