将数据保存到VB.Net中的文本文件
我有一个功能正常的Streamwriter,它创建一个文本文件并将所需的信息放入该文件中,但是每当我重新运行该应用程序时,都会重新创建文本文件当前值取代旧的。我如何确保将以前的数据保存在文本文件中,并将新数据添加到文本文件中?将数据附加到文件似乎是显而易见的路线,但我不确定如何将代码合并到我的程序中。将数据保存到VB.Net中的文本文件
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
您需要另一个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
正在访问该文件,你可以创建另一个StreamWriter
insatnce没有问题。
This Works!不幸的是,我必须错过别的东西。它只能在程序运行期间运行一次。如果再次单击我的按钮以添加更多数据,则会出现IOException,表示该文本文件正在被另一个进程使用。有什么建议么? –
这是因为您每次按下按钮时都会创建一个新的Steamwriter。您需要检查是否已经创建了Streamwriter,如果是,则只需使用它写入。 –
我编辑了我的答案来展示如何去做 –
还有的the StreamWriter
constructor正是这种目的的过载:
wr = New StreamWriter("C:\Users\Anon\Documents\SampleTextFile.txt", True)
第二个参数是:
真实数据追加到该文件;假覆盖文件。如果指定的文件不存在,则此参数不起作用,并且构造函数将创建一个新文件。
哦,对不起,你比我快,我没有看到你的答案。相当不错的是关闭相同的答案大声笑 –
这工作。但是,如果我在程序的相同运行中再次触发我的按钮事件以添加更多数据,则会出现IOException,表示该文本文件正在被另一个进程使用。有什么建议么? –
在您键入方法时检查VS提供的帮助。 StreamWriter有一个重载允许你追加。另请查看[问]并参加[旅游] – Plutonix
我非常感谢所有帮助。我想,我会做一些关于痛苦的具体指导方针*有问题要求的失误。然而,鉴于我收到了我最初来到这里的信息,我的努力取得了成功。请不要误解。我尊重这些准则只是为了提高效率,所以它们值得阅读和尊重。感谢您的提醒。 –