【问题标题】:C# | StreamWriter keeps replacing the current linesC# | StreamWriter 不断替换当前行
【发布时间】:2013-09-25 16:13:54
【问题描述】:

所以我有这个应用程序,其中有 3 个文本框要求用户输入。当用户完成填充 texboxes 时,会有一个按钮将输入存储到一个类中。

现在的想法是,当用户按下按钮将输入存储到一个类时,输入也会存储到一个文本文件中。我现在面临的问题是,每当用户添加新输入时,文本文件中的旧输入都会被替换。

这是代码:

using (StreamWriter txtFile = new StreamWriter(@"C:\Users\Desktop\smtp.txt"))
{
    txtFile.WriteLine(Class_Smtp[Index].SmtpClientName);
    txtFile.WriteLine(Class_Smtp[Index].SmtpPort);
    txtFile.WriteLine(Class_Smtp[Index].SmtpEmailExtension + Environment.NewLine);
}

有什么想法吗?

提前谢谢你。

【问题讨论】:

    标签: c# streamwriter


    【解决方案1】:

    你应该附加文本

    using (StreamWriter txtFile = new StreamWriter(@"C:\Users\Desktop\smtp.txt", true))
    {
        txtFile.WriteLine(Class_Smtp[Index].SmtpClientName);
        txtFile.WriteLine(Class_Smtp[Index].SmtpPort);
        txtFile.WriteLine(Class_Smtp[Index].SmtpEmailExtension + Environment.NewLine);
    }
    

    【讨论】:

    • 谢谢!看来我确实忘记传递另一个参数。谢谢。
    【解决方案2】:

    使用接受布尔参数的StreamWriter构造函数覆盖来告诉它是追加还是替换,并传递true

    public StreamWriter(string path, bool append)

    你的例子:

    using 
    (
        StreamWriter txtFile = new StreamWriter
        (
            @"C:\Users\Desktop\smtp.txt", 
            true // <=== This parameter tells it to append
        )
    )
    

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 2013-01-10
    • 2021-03-01
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    相关资源
    最近更新 更多