首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileSystem FilePutobject问题

FileSystem FilePutobject问题
EN

Stack Overflow用户
提问于 2013-05-16 17:05:10
回答 1查看 582关注 0票数 2

我使用"FilePutObject“在VB.NET中编写了以下代码,以便用VB.NET编写文件。

代码语言:javascript
复制
Dim str = "This is a Test"
FileSystem.FileOpen(1, "c:\temp\file1.txt", OpenMode.Binary)
FileSystem.FilePutObject(1, str, 2)
FileSystem.FileClose(1)

当我检查文件时,我发现文本之前添加的垃圾字符很少。

然后,我使用"FilePut“来编写文件:

代码语言:javascript
复制
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正确地编写?

EN

回答 1

Stack Overflow用户

发布于 2013-05-16 17:28:18

这是正常的行为。您正在将对象输出到二进制文件--这并不是生成纯文本文件,如果您想要生成文本文件(实际上是用于新的开发),那么FilePutObject不是正确的工具。

在这种情况下,“垃圾”字符属于对象文件中的字符串描述符。最好通过查看写入文件的原始值来理解前面的四个字节:

前两个字节描述变量类型(参见:VarType) - 00 08在这里用于vbString。后面两个给出字符串的长度,00 0e或14,因为字符串中有14个字符。

它们已经就位,以便在从文件中读取多个对象时,read函数可以识别每个对象的类型和大小,这样它就知道在到达下一个对象之前读取的内容和停止的位置。

如果要编写文本文件,请考虑使用StreamWriter

例如:

代码语言:javascript
复制
Dim str as String = "This is a Test"
Using sw As StreamWriter = New StreamWriter("c:\temp\file1.txt")
        sw.WriteLine(str)
End Using 
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16593408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档