.NET Framework Class Library
BinaryWriter.BaseStream Property
Gets the underlying stream of the BinaryWriter.
Assembly: mscorlib (in mscorlib.dll)
Syntax
Visual Basic
Public Overridable ReadOnly Property BaseStream As Stream
C#
public virtual Stream BaseStream { get; }
Visual C++
public: virtual property Stream^ BaseStream { Stream^ get (); }
F#
abstract BaseStream : Stream override BaseStream : Stream
Remarks
For a list of common I/O tasks, see Common I/O Tasks.
Examples
The following code example shows how to read and write Double data to memory by using the BinaryReader and BinaryWriter classes on top of the MemoryStream class. MemoryStream only reads and writes Byte data.
Visual Basic
Imports System Imports System.IO Public Class BinaryRW Shared Sub Main() Dim i As Integer Const upperBound As Integer = 1000 ' Create random data to write to the stream. Dim dataArray(upperBound) As Double Dim randomGenerator As New Random() For i = 0 To upperBound dataArray(i) = 100.1 * randomGenerator.NextDouble() Next i Dim binWriter As New BinaryWriter(New MemoryStream()) Try ' Write data to the stream. Console.WriteLine("Writing data to the stream.") For i = 0 To upperBound binWriter.Write(dataArray(i)) Next i ' Create a reader using the stream from the writer. Dim binReader As New BinaryReader(binWriter.BaseStream) ' Return to the beginning of the stream. binReader.BaseStream.Position = 0 ' Read and verify the data. Try Console.WriteLine("Verifying the written data.") For i = 0 To upperBound If binReader.ReadDouble() <> dataArray(i) Then Console.WriteLine("Error writing data.") Exit For End If Next i Console.WriteLine("The data was written and verified.") Catch ex As EndOfStreamException Console.WriteLine("Error writing data: {0}.", _ ex.GetType().Name) End Try Finally binWriter.Close() End Try End Sub End Class
C#
using System; using System.IO; class BinaryRW { static void Main() { int i; const int arrayLength = 1000; // Create random data to write to the stream. Random randomGenerator = new Random(); double[] dataArray = new double[arrayLength]; for(i = 0; i < arrayLength; i++) { dataArray[i] = 100.1 * randomGenerator.NextDouble(); } using(BinaryWriter binWriter = new BinaryWriter(new MemoryStream())) { // Write the data to the stream. Console.WriteLine("Writing data to the stream."); for(i = 0; i < arrayLength; i++) { binWriter.Write(dataArray[i]); } // Create a reader using the stream from the writer. using(BinaryReader binReader = new BinaryReader(binWriter.BaseStream)) { try { // Return to the beginning of the stream. binReader.BaseStream.Position = 0; // Read and verify the data. Console.WriteLine("Verifying the written data."); for(i = 0; i < arrayLength; i++) { if(binReader.ReadDouble() != dataArray[i]) { Console.WriteLine("Error writing data."); break; } } Console.WriteLine("The data was written " + "and verified."); } catch(EndOfStreamException e) { Console.WriteLine("Error writing data: {0}.", e.GetType().Name); } } } } }
Visual C++
using namespace System; using namespace System::IO; int main() { int i; const int arrayLength = 1000; // Create random data to write to the stream. array<double>^dataArray = gcnew array<double>(arrayLength); Random^ randomGenerator = gcnew Random; for ( i = 0; i < arrayLength; i++ ) { dataArray[ i ] = 100.1 * randomGenerator->NextDouble(); } BinaryWriter^ binWriter = gcnew BinaryWriter( gcnew MemoryStream ); try { // Write data to the stream. Console::WriteLine( "Writing data to the stream." ); i = 0; for ( i = 0; i < arrayLength; i++ ) { binWriter->Write( dataArray[ i ] ); } // Create a reader using the stream from the writer. BinaryReader^ binReader = gcnew BinaryReader( binWriter->BaseStream ); // Return to the beginning of the stream. binReader->BaseStream->Position = 0; try { // Read and verify the data. i = 0; Console::WriteLine( "Verifying the written data." ); for ( i = 0; i < arrayLength; i++ ) { if ( binReader->ReadDouble() != dataArray[ i ] ) { Console::WriteLine( "Error writing data." ); break; } } Console::WriteLine( "The data was written and verified." ); } catch ( EndOfStreamException^ e ) { Console::WriteLine( "Error writing data: {0}.", e->GetType()->Name ); } } finally { binWriter->Close(); } }
Version Information
.NET Framework
Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Supported in: 4, 3.5 SP1Portable Class Library
Supported in: Portable Class LibraryPlatforms
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
See Also