我正在尝试使用以下代码创建文本文件;但总有一条额外的线,我无法摆脱。有没有办法修改这段代码来编写没有最后一行的文本文件?帮助赞赏:
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
提前感谢您的帮助......
答案 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());