首页 > 解决方案 > VB writeline 将损坏的行写入文本文件

问题描述

以下代码是否可以在文本文件中生成 NUL 值?

var temp_str = "123456;1234567"
My.Computer.FileSystem.WriteAllText(Path & "stats.txt", temp_str, False)

这看起来很简单,但它经常写入,我看到几个文件被应用程序访问,这些文件将字符串写入为: 文件内容

使用 Notepad++ 打开文件时。其他一些编辑器只显示正方形,似乎每个字符都由块/NUL 表示。到目前为止,我无法在我的测试系统上重现这一点。我只是在 COMX 模块的文件系统上找到了在现场运行的文件并返回错误,但我已经看到足够多的这些文件,使其成为需要解决的问题。

有谁知道防止这种行为?

标签: vb.net

解决方案


如果没有更多代码,很难说问题出在哪里,但是如果您想替换文件的现有内容,请尝试以下操作:

Dim fileContent = "My UTF-8 file contents"
Using writer As IO.StreamWriter = IO.File.CreateText(fullPathIncludingExtension)
    writer.Write(fileContent)
End Using

或者,如果您想附加 UTF-8 文本:

Dim newLines = "My UTF-8 content to append"
Using writer As IO.StreamWriter = IO.File.AppendAllText(fullPathIncludingExtension)
    writer.Write(fileContent)
End Using

如果要附加 Unicode 文本,则必须为 StreamWriter 使用不同的构造函数:

Using writer As IO.StreamWriter = New IO.StreamWriter("full/path/to/file.txt", True, Text.Encoding.Unicode)
    writer.Write(MyContentToAppend)
End Using

请注意,True构造函数的参数指定您要附加文本。


推荐阅读