BinaryReader. This reads in a binary file. 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.
Type notes. 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.
Example. 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.
Thus The BinaryWriter and BinaryReader types are used together for perfect compatibility.
Imports System.IO
Module Module1
Sub Main()
' 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.
Console.WriteLine(value)
' Add length of integer in bytes to position.
pos += 4
End While
End Using
End Sub
End Module1
4
6
7
11
55
777
23
266
44
82
93
Summary. The BinaryReader type is exceedingly useful. It loads binary data in specific file formats into a VB.NET program. Because it is based on streams, it uses somewhat less memory as well.
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
This page was last updated on Sep 24, 2022 (rewrite).