二进制文件,我想编写一个简单的应用程序,监视COM端口和输入的二进制数据写入一个文件。所以,我聚集了文件提供类,但是看着在Help page其方法列表,我看不出有什么方法写入单个字节(和写入方法似乎写入后关闭文件)。使用File类写在VB .NET
我如何写一个字节数组到一个文件中,保持开放,这是必要的重复?
(我使用Visual Studio 2005中,如果是相关的。)
二进制文件,我想编写一个简单的应用程序,监视COM端口和输入的二进制数据写入一个文件。所以,我聚集了文件提供类,但是看着在Help page其方法列表,我看不出有什么方法写入单个字节(和写入方法似乎写入后关闭文件)。使用File类写在VB .NET
我如何写一个字节数组到一个文件中,保持开放,这是必要的重复?
(我使用Visual Studio 2005中,如果是相关的。)
使用FileStream
:
Dim file As FileStream = File.OpenWrite(fileName)
您使用所述Write
方法写入一个字节数组(或它的一部分),以流:
file.Write(buffer, 0, buffer.Length)
的Write
方法不会关闭该流,则可以写出你喜欢多次。
当你写你想要什么,你用Close
方法关闭流:
file.Close()
您正在寻找的BinaryWriter
class,也在System.IO
命名空间。
的Write
method的各种重载允许您将值写入该文件,然后通过字节的适当数目前进流中的当前位置。
使用BinaryWriter.Write方法:
BinaryWriter binWriter = new BinaryWriter(File.Open(@"C:\Test.txt", FileMode.Create)))
byte[] byteValue = // set the value here ..
binWriter.Write(byteValue);
参考:
谢谢,@Guffa,我不知道你在哪里? ;-) - 根据文档(链接到问题中的页面),File类没有Write()方法。那么,这是从哪里来的? – ysap 2011-05-22 16:41:06
@ysap:本'File'类只是包含了一些有用的静态方法静态类,但它并不代表一个打开的文件。 'FileStream'类是用来处理打开的文件的类,它是具有'Write'方法的类。 – Guffa 2011-05-22 16:53:56
我需要将'OpenWrite'操作与'Dim'声明分开,即'file'变量应该是类的成员,而不是局部变量。这是我打开,写和关闭所有不同方法的B/C。所以,我对代码进行了一些调整,但是我尝试了每个组合的错误。上次我在VB中编写程序是几年前在VB6上编写的,所以即使我可以在“旧风格”中实现这一点,我也试图使其与.NET精神兼容。 – ysap 2011-05-22 17:27:32