我使用"FilePutObject“在VB.NET中编写了以下代码,以便用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正确地编写?
发布于 2013-05-16 17:28:18
这是正常的行为。您正在将对象输出到二进制文件--这并不是生成纯文本文件,如果您想要生成文本文件(实际上是用于新的开发),那么FilePutObject不是正确的工具。
在这种情况下,“垃圾”字符属于对象文件中的字符串描述符。最好通过查看写入文件的原始值来理解前面的四个字节:

前两个字节描述变量类型(参见:VarType) - 00 08在这里用于vbString。后面两个给出字符串的长度,00 0e或14,因为字符串中有14个字符。
它们已经就位,以便在从文件中读取多个对象时,read函数可以识别每个对象的类型和大小,这样它就知道在到达下一个对象之前读取的内容和停止的位置。
如果要编写文本文件,请考虑使用StreamWriter。
例如:
Dim str as String = "This is a Test"
Using sw As StreamWriter = New StreamWriter("c:\temp\file1.txt")
sw.WriteLine(str)
End Using https://stackoverflow.com/questions/16593408
复制相似问题