StreamWriter.WriteLine没有写入新行

时间:2014-10-19 14:09:12

标签: vb.net streamwriter

我使用以下代码将DataTable写入文本文件。

Using sbData As New StreamWriter(fileName, False, Encoding.UTF32)
    sbData.Write(String.Join("\t", dataTable.Columns.Cast(Of DataColumn)().Select(Function(arg) arg.ColumnName.Trim())))
    sbData.WriteLine()
    For Each dataRow As DataRow In dataTable.Rows
        sbData.Write(String.Join("\t", dataRow.ItemArray.Select(Function(arg) arg.ToString().Trim())))
        sbData.WriteLine()
    Next
    sbData.Flush()
    sbData.Close()
End Using

数据被写入文本文件但是\ t(tab)既没有工作也没有WriteLine。 而不是标签我得到" \ t"在文本文件中,一切都在继续。 任何人都知道这里有什么问题吗?

2 个答案:

答案 0 :(得分:2)

"\t"仅适用于大括号语言,如C#,你必须在VB.NET中使用vbTab。

使用utf32只是很奇怪,而且WriteLine()似乎不起作用的原因。无论你用什么程序来查看文件,都不会期望它,并会猜错编码。也是你在“\ t”中看到空格的原因。使用异常编码时,写入BOM不是可选的。强烈考虑使用Encoding.UTF8,这是StreamWriter的默认值。

答案 1 :(得分:0)

问题解决了: 对于标签我使用了ControlChars.Tab,它完美地运行。 对于WriteLine,我想它与编码有关。我从UTF32切换到Unicode,它开始工作。

将尝试找出究竟是什么问题,但现在问题已经解决: - )