Vb.net 附录文本元';t追加到文本文件/vb中的下一行

Vb.net 附录文本元';t追加到文本文件/vb中的下一行,vb.net,appendtext,Vb.net,Appendtext,我正在制作一个程序,允许您将学生信息添加到现有的CSV文本文件中,但每当我使用“附加文本”时,它会将新信息添加到最后一行的一部分,然后再添加一行 我希望它能做到这一点: 约翰·多伊,29岁,男 约翰·多伊,29岁,男 而是这样做的: John Doe,29岁,MaleJo 多伊,29岁,男性 注意:事实上,每套信息之间并没有空行,我只是希望在这里发布时易于阅读 以下是该部分的代码: Dim swVar As IO.StreamWriter = IO.File.AppendText(frmMain

我正在制作一个程序,允许您将学生信息添加到现有的CSV文本文件中,但每当我使用“附加文本”时,它会将新信息添加到最后一行的一部分,然后再添加一行

我希望它能做到这一点:

约翰·多伊,29岁,男

约翰·多伊,29岁,男

而是这样做的:

John Doe,29岁,MaleJo

多伊,29岁,男性

注意:事实上,每套信息之间并没有空行,我只是希望在这里发布时易于阅读

以下是该部分的代码:

Dim swVar As IO.StreamWriter = IO.File.AppendText(frmMain.fileName)

swVar.WriteLine(txtName.Text & "," & txtAge.Text & "," & gender)

swVar.Close()
任何帮助都将不胜感激,谢谢

VS2010(以及其他)中的一个方便工具是代码段-右键单击“插入代码段…”许多典型任务的代码模式。在您的案例中,这里是一个修改后的代码段:

Sub AddToFile(textToAdd As String, filePath As String)
    My.Computer.FileSystem.WriteAllText(filePath, textToAdd, True)
End Sub
您可能希望在要添加的文本中选中/添加vbNewLine,因为vbNewLine不会像WriteLine那样自动添加


不是对您所述问题的直接回答,而是另一种方法。

看看这样的方法是否更有效:

IO.File.AppendText(frmMain.fileName, vbNewLine & txtName.Text & "," & txtAge.Text & "," & gender & vbNewLine)
AppendText将在一个操作中打开、写入和关闭所有文件,因此不需要单独的streamwriter。它也不添加换行符,因此必须单独添加这些换行符

当然,除非您正在对同一文件执行一系列写入操作,否则这样的操作可能更合适:

Dim swVar As New IO.StreamWriter(frmMain.fileName, True)
'write your lines here
swVar.WriteLine(txtName.Text & "," & txtAge.Text & "," & gender)

swVar.Close()

执行此操作的方法是否由多个线程调用?我怀疑它被调用,而它已经在写一个条目的中间,而另一个则被插入中间,在我测试的时候,你所显示的代码对我来说很好。