我有一个正在运行的编写器,它创建一个文本文件并将我需要的信息放在该文件中,但每当我重新运行应用程序时,文本文件将重新创建,当前值将替换旧文件。如何确保先前的数据保存在文本文件中并添加新数据?将数据附加到文件似乎是显而易见的路线,但我只是不确定如何将代码合并到我的程序中。
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
答案 0 :(得分:1)
您需要另一个StreamWriter构造函数的重载。
只需使用wr = New StreamWriter("C:\Users\Anon\Documents\SampleTextFile.txt", true)
您需要this one
示例:
Using wr As new StreamWriter("C:\Users\Anon\Documents\SampleTextFile.txt",true)
wr.WriteLine($"{CorpID},{Fname},{Lname},{PreConf},{ConfCost})
End Using
使用using
时,StreamWriter
在完成后会被释放,因此当您再次单击该按钮时,没有StreamWriter
正在访问该文件,您可以创建另一个{{1}的失效}}没有问题。
答案 1 :(得分:0)
出于这个目的,the StreamWriter
constructor超载了:
wr = New StreamWriter("C:\Users\Anon\Documents\SampleTextFile.txt", True)
第二个参数是:
如果要将数据附加到文件,则为true; false覆盖文件。如果指定的文件不存在,则此参数无效,构造函数将创建新文件。