为什么我的StreamWriter会覆盖整个.txt文件?

时间:2015-06-11 12:18:06

标签: c# streamreader streamwriter

我正在更改文本中的值,但相反,它会覆盖我的整个.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文件中正确更改/编辑/替换特定值?

由于

1 个答案:

答案 0 :(得分:0)

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

您没有使用重载来追加。在您输入时,可以在Intellisense中轻松查看。

提示:File.Open-Method更易于使用。这个主题SO article