我在VB.NET中使用“ FilePutObject ”编写了以下代码,以便在VB.NET中编写文件。
Dim str = "This is a Test"
FileSystem.FileOpen(1, "c:\temp\file1.txt", OpenMode.Binary)
FileSystem.FilePutObject(1, str, 2)
FileSystem.FileClose(1)
当我检查文件时,我发现在文本之前添加了一些垃圾字符。
然后我使用“ FilePut ”来编写文件:
Dim str = "This is a Test"
FileSystem.FileOpen(1, "c:\temp\file1.txt", OpenMode.Binary)
FileSystem.FilePut(1, str, 2)
FileSystem.FileClose(1)
使用 FilePut 时,文件中的文字写得非常完美。这背后的原因是什么?此外,我发现 * FilePut 已过时,应使用 FilePutObject *。如何使用 FilePutObject 正确编写?
答案 0 :(得分:4)
这是正常行为。您正在将对象输出到二进制文件 - 这不会生成纯文本文件,如果您想要生成文本文件(或者根本不是用于新开发),FilePutObject
不是正确的工具。< / p>
在这种情况下,&#34;垃圾&#34;字符属于目标文件中的字符串描述符。通过查看写入文件的原始值,可以最好地理解您案例中的前四个字节:
前两个字节描述00 08
的变量类型(参见:VarType) - vbString
。接下来的两个给出字符串长度00 0e
或14,因为字符串中有14个字符。
它们就位,以便当从文件中读出多个对象时,读取函数可以识别每个对象的类型和大小,以便它知道在到达下一个对象之前要读取多少内容和停止的位置。
如果您要撰写文本文件,请考虑使用StreamWriter。
例如:
Dim str as String = "This is a Test"
Using sw As StreamWriter = New StreamWriter("c:\temp\file1.txt")
sw.WriteLine(str)
End Using