Although reading and writing directly to a stream is possible, working with an array of bytes can be difficult if the data in question is composed of integers, longs, doubles, or other primitive data types—or objects, for that matter. Fortunately, there are classes available (in System.IO) whose sole purpose is to assist in reading and writing data to streams.
BinaryReader and BinaryWriter read and write primitive data types from a stream. There are also several readers and writers designed for character-based input and output, as opposed to "raw" bytes. These classes are derived from TextReader and TextWriter. Specifically, they are called StringReader/Writer and StreamReader/Writer.
In Example 8-3, a file stream creates a stream to a file called data.bin. The stream instance constructs a BinaryWriter, which allows primitive data types to be written to the store.
Imports System Imports System.IO Public Class StreamTest2 Public Sub New( ) Dim stream As New FileStream("data.bin", _ FileMode.Create, _ FileAccess.ReadWrite) Dim writer As New BinaryWriter(stream) Dim b As Byte = 1 Dim i As Integer = 2 Dim l As Long = 3 Dim d As Double = 3.1459 Dim s As String = "It's easy as ABC" writer.Write(b) writer.Write(i) writer.Write(l) writer.Write(d) writer.Write(s) writer.Close( ) Console.WriteLine("File written...") End Sub End Class Public Class Application Public Shared Sub Main( ) ...