在VB.NET中创建文本文件添加额外的行

时间:2014-07-03 08:43:39

标签: vb.net

我正在尝试使用以下代码创建文本文件;但总有一条额外的线,我无法摆脱。有没有办法修改这段代码来编写没有最后一行的文本文件?帮助赞赏:

Imports System.IO
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim MekdamFile As String
    MekdamFile = "C:\TEMP\MEKDAM.txt"
    Dim dones As New List(Of String)
    For i = 1 To 10
        dones.Add("test test " & i)
    Next
    Using sw As New StreamWriter(MekdamFile)
        For Each i As String In dones
            sw.WriteLine(i)
        Next
    End Using
End Sub
End Class   

提前感谢您的帮助......

3 个答案:

答案 0 :(得分:2)

StreamWriter.WriteLine总是写一个行终止符。

在循环的最后一次迭代中,您可以使用sw.Write。

答案 1 :(得分:1)

您的代码可以简化一下:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
   File.WriteAllText("C:\TEMP\MEKDAM.txt", [String].Join( _
       Environment.NewLine, _
       Enumerable.Range(1, 10).[Select](Function(i) "Test test" + Cstr(i))))
End Sub

答案 2 :(得分:0)

您正在调用WriteLINE,因此无论您传入什么内容都会附加换行字符序列。

如果您不想编写换行符,请使用Write而不是WriteLine。当然,您应该自己为换行以外的所有行添加换行符。

或者,对于一个小文本,只需构建整个文本,然后修剪它的结尾并立即写入:

Dim sb As new StringBuilder();
For i = 1 To 10
    sb.AppendLine("line " + i);
Next
File.WriteAllText(path, sb.ToString().TrimEnd());