2011-05-22 55 views
1

二进制文件,我想编写一个简单的应用程序,监视COM端口和输入的二进制数据写入一个文件。所以,我聚集了文件提供类,但是看着在Help page其方法列表,我看不出有什么方法写入单个字节(和写入方法似乎写入后关闭文件)。使用File类写在VB .NET

我如何写一个字节数组到一个文件中,保持开放,这是必要的重复?

(我使用Visual Studio 2005中,如果是相关的。)

回答

2

使用FileStream

Dim file As FileStream = File.OpenWrite(fileName) 

您使用所述Write方法写入一个字节数组(或它的一部分),以流:

file.Write(buffer, 0, buffer.Length) 

Write方法不会关闭该流,则可以写出你喜欢多次。

当你写你想要什么,你用Close方法关闭流:

file.Close() 
+0

谢谢,@Guffa,我不知道你在哪里? ;-) - 根据文档(链接到问题中的页面),File类没有Write()方法。那么,这是从哪里来的? – ysap 2011-05-22 16:41:06

+0

@ysap:本'File'类只是包含了一些有用的静态方法静态类,但它并不代表一个打开的文件。 'FileStream'类是用来处理打开的文件的类,它是具有'Write'方法的类。 – Guffa 2011-05-22 16:53:56

+0

我需要将'OpenWrite'操作与'Dim'声明分开,即'file'变量应该是类的成员,而不是局部变量。这是我打开,写和关闭所有不同方法的B/C。所以,我对代码进行了一些调整,但是我尝试了每个组合的错误。上次我在VB中编写程序是几年前在VB6上编写的,所以即使我可以在“旧风格”中实现这一点,我也试图使其与.NET精神兼容。 – ysap 2011-05-22 17:27:32

2

您正在寻找的BinaryWriter class,也在System.IO命名空间。

Write method的各种重载允许您将值写入该文件,然后通过字节的适当数目前进流中的当前位置。

2

使用BinaryWriter.Write方法:

BinaryWriter binWriter = new BinaryWriter(File.Open(@"C:\Test.txt", FileMode.Create))) 

byte[] byteValue = // set the value here .. 
binWriter.Write(byteValue); 

参考:

BinaryWriter Class

+0

感谢。你的意思是第一个关键字应该是Dim而不是BinaryWriter?否则,我收到一个错误。 – ysap 2011-05-22 16:58:18

+0

...等等,这不是一个C#代码吗? – ysap 2011-05-22 17:02:57

+0

完成写入后不要忘记binWriter.Close()。 – ItsPete 2015-12-01 21:44:06