【问题标题】:creating text file in VB.NET adding extra line在 VB.NET 中创建文本文件添加额外的行
【发布时间】:2014-07-03 16:56:39
【问题描述】:

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

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   

提前感谢您的帮助...

【问题讨论】:

  • 您的结果如何?

标签: vb.net


【解决方案1】:

StreamWriter.WriteLine 始终写入行终止符。

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

【讨论】:

    【解决方案2】:

    您的代码可以简化一点:

    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
    

    【讨论】:

      【解决方案3】:

      您正在调用 WriteLINE,因此您传入的任何内容都将附加一个换行符序列。

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多