VB.NET BinaryReader ExampleThis VB.NET program uses the BinaryReader class. It reads a binary file.
reads in a binary file. With the BinaryReader type, we read in each integer, byte, string or other value from a binary file. This type allows us to encode our data in the most efficient way. It is also easy to use.BinaryWriterFile
First, the example opens a file called "file.bin" which is in the current directory. If you have no file there, you can create one with the BinaryWriter type, also found in System.IO.
Next: To use the BinaryReader you want to enclose it in a Using statement, which ensures correct disposal of system resources.
So: We acquire the length of the file, then simply loop through every four bytes using a While-loop, calling ReadInt32 each time.
Tip: You can see that 12 integers we read from the file. We see these are the same integers that were written there.Integer
Thus: The BinaryWriter and BinaryReader types are used together for perfect compatibility.
VB.NET program that uses BinaryReader
' Create the reader in a Using statement.
' ... Use File.Open to open the existing binary file.
Using reader As New BinaryReader(File.Open("file.bin", FileMode.Open))
' Loop through length of file.
Dim pos As Integer = 0
Dim length As Integer = reader.BaseStream.Length
While pos < length
' Read the integer.
Dim value As Integer = reader.ReadInt32()
' Write to screen.
' Add length of integer in bytes to position.
pos += 4
Also, the BinaryReader can read many kinds of data from a file. It handles Strings, with ReadString. It handles many numeric types, not just Integers. These include Double and Long.
The BinaryReader type is exceedingly useful. It loads binary data in specific file formats into a VB.NET program. This website uses BinaryReader to load all of its data when it starts up.
Also: Because it is based on streams, it uses somewhat less memory as well. It does not need to load an entire file in at once.
© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to firstname.lastname@example.org.