在VB.Net中将数据保存到文本文件

在VB.Net中将数据保存到文本文件,vb.net,Vb.net,我有一个功能正常的streamwriter,它可以创建一个文本文件,并将我需要的信息放在该文件中,但每当我重新运行应用程序时,就会用当前值替换旧值重新创建文本文件。如何确保将以前的数据保存在文本文件中,并将新数据添加到文本文件中?将数据附加到文件中似乎是一条显而易见的途径,但我不确定如何将其代码合并到我的程序中 Dim CorpID, Fname, Lname, PreConf, ConfCost As String CorpID = txtCorpID.Text

我有一个功能正常的streamwriter,它可以创建一个文本文件,并将我需要的信息放在该文件中,但每当我重新运行应用程序时,就会用当前值替换旧值重新创建文本文件。如何确保将以前的数据保存在文本文件中,并将新数据添加到文本文件中?将数据附加到文件中似乎是一条显而易见的途径,但我不确定如何将其代码合并到我的程序中

Dim CorpID, Fname, Lname, PreConf, ConfCost As String
        CorpID = txtCorpID.Text
        Fname = txtFirstName.Text
        Lname = txtLastName.Text
        If radNotAttending.Checked = True Then
            PreConf = ""
        Else
            PreConf = cmbCourses.SelectedItem.ToString
        End If
        ConfCost = decAttendCost.ToString("C")

        Dim wr As StreamWriter
        wr = New StreamWriter("C:\Users\Anon\Documents\SampleTextFile.txt")
        wr.WriteLine(String.Format("{0},{1},{2},{3}, {4}", CorpID, Fname, Lname, PreConf, ConfCost))
        wr.Flush()
        wr = Nothing
有一个超负荷的正是为了这个目的:

wr = New StreamWriter("C:\Users\Anon\Documents\SampleTextFile.txt", True)
第二个参数是:

true将数据追加到文件中;false将覆盖该文件。如果指定的文件不存在,则此参数无效,构造函数将创建一个新文件


您需要StreamWriter构造函数的另一个重载

只需使用wr=newstreamwriter:\Users\Anon\Documents\SampleTextFile.txt,true

你需要

例如:

Using wr As new StreamWriter("C:\Users\Anon\Documents\SampleTextFile.txt",true)
    wr.WriteLine($"{CorpID},{Fname},{Lname},{PreConf},{ConfCost})
End Using

使用时,StreamWriter在使用完毕后会被释放,因此,当您再次单击按钮时,StreamWriter不会访问该文件,您可以创建另一个StreamWriter检查,而不会出现任何问题

键入方法时检查帮助和提供的帮助。StreamWriter有一个重载,允许您附加。同时也请检查并采取行动,我同样非常感谢您的帮助。我想我会在stackoverflow关于提问的痛苦的具体指导方针上犯一些错误。然而,鉴于我收到了最初来这里的信息,我的努力是成功的。请不要误解。我尊重这些准则只是为了提高效率,因此它们值得阅读和尊重。谢谢你的提醒。哦,对不起你比我快,我没看到你的答案。很好,答案是一样的。但是,如果我在程序的同一次运行中再次触发button事件以添加更多数据,我会得到一个IOException,表示该文本文件正被另一个进程使用。有什么建议吗?这很有效!不幸的是,我肯定错过了别的东西。它在程序运行期间只工作一次。如果我再次单击我的按钮来添加更多数据,我会得到一个IOException,表示文本文件正在被另一个进程使用。有什么建议吗?那是因为你每次按下按钮都在创建一个新的蒸汽发生器。您需要检查Streamwriter是否已创建,如果已创建,则只需使用它进行写入即可。将从Dim wr开始的代码替换为“我的代码”的“流”,并应能正常工作: