Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

BinaryWriter Class

Writes primitive types in binary to a stream and supports writing strings in a specific encoding.

System::Object
  System.IO::BinaryWriter

Namespace:  System.IO
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public ref class BinaryWriter : IDisposable

The BinaryWriter type exposes the following members.

  NameDescription
Protected methodSupported by the XNA FrameworkSupported by Portable Class LibraryBinaryWriter()Initializes a new instance of the BinaryWriter class that writes to a stream.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryBinaryWriter(Stream)Initializes a new instance of the BinaryWriter class based on the supplied stream and using UTF-8 as the encoding for strings.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryBinaryWriter(Stream, Encoding)Initializes a new instance of the BinaryWriter class based on the supplied stream and a specific character encoding.
Top

  NameDescription
Public propertySupported by the XNA FrameworkSupported by Portable Class LibraryBaseStreamGets the underlying stream of the BinaryWriter.
Top

  NameDescription
Public methodSupported by the XNA FrameworkCloseCloses the current BinaryWriter and the underlying stream.
Public methodSupported by Portable Class LibraryDispose()Releases all resources used by the current instance of the BinaryWriter class.
Protected methodSupported by the XNA FrameworkSupported by Portable Class LibraryDispose(Boolean)Releases the unmanaged resources used by the BinaryWriter and optionally releases the managed resources.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodSupported by the XNA FrameworkSupported by Portable Class LibraryFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryFlushClears all buffers for the current writer and causes any buffered data to be written to the underlying device.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodSupported by the XNA FrameworkSupported by Portable Class LibraryMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySeekSets the position within the current stream.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryToStringReturns a string that represents the current object. (Inherited from Object.)
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(Boolean)Writes a one-byte Boolean value to the current stream, with 0 representing false and 1 representing true.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(Byte)Writes an unsigned byte to the current stream and advances the stream position by one byte.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(array<Byte>)Writes a byte array to the underlying stream.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(Char)Writes a Unicode character to the current stream and advances the current position of the stream in accordance with the Encoding used and the specific characters being written to the stream.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(array<Char>)Writes a character array to the current stream and advances the current position of the stream in accordance with the Encoding used and the specific characters being written to the stream.
Public methodSupported by the XNA FrameworkWrite(Decimal)Writes a decimal value to the current stream and advances the stream position by sixteen bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(Double)Writes an eight-byte floating-point value to the current stream and advances the stream position by eight bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(Int16)Writes a two-byte signed integer to the current stream and advances the stream position by two bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(Int32)Writes a four-byte signed integer to the current stream and advances the stream position by four bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(Int64)Writes an eight-byte signed integer to the current stream and advances the stream position by eight bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(SByte)Writes a signed byte to the current stream and advances the stream position by one byte.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(Single)Writes a four-byte floating-point value to the current stream and advances the stream position by four bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(String)Writes a length-prefixed string to this stream in the current encoding of the BinaryWriter, and advances the current position of the stream in accordance with the encoding used and the specific characters being written to the stream.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(UInt16)Writes a two-byte unsigned integer to the current stream and advances the stream position by two bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(UInt32)Writes a four-byte unsigned integer to the current stream and advances the stream position by four bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(UInt64)Writes an eight-byte unsigned integer to the current stream and advances the stream position by eight bytes.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(array<Byte>, Int32, Int32)Writes a region of a byte array to the current stream.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite(array<Char>, Int32, Int32)Writes a section of a character array to the current stream, and advances the current position of the stream in accordance with the Encoding used and perhaps the specific characters being written to the stream.
Protected methodSupported by the XNA FrameworkSupported by Portable Class LibraryWrite7BitEncodedIntWrites a 32-bit integer in a compressed format.
Top

  NameDescription
Public fieldStatic memberSupported by the XNA FrameworkSupported by Portable Class LibraryNullSpecifies a BinaryWriter with no backing store.
Protected fieldSupported by the XNA FrameworkSupported by Portable Class LibraryOutStreamHolds the underlying stream.
Top

  NameDescription
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIDisposable::DisposePerforms application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Top

A derived class can override the methods of this class to give unique character encodings.

For a list of common I/O tasks, see Common I/O Tasks.

The following code example demonstrates how to store and retrieve application settings in a file.


using namespace System;
using namespace System::IO;
using namespace System::Security::Permissions;

// Store and retrieve application settings.
ref class AppSettings
{
private:
   static String^ fileName =  "AppSettings#@@#.dat";
   float aspectRatio;
   String^ lookupDir;
   int autoSaveTime;
   Boolean showStatusBar;

public:

   property float AspectRatio
   {
      float get()
      {
         return aspectRatio;
      }

      void set( float value )
      {
         aspectRatio = value;
      }

   }

   property String^ LookupDir
   {
      String^ get()
      {
         return lookupDir;
      }

      void set( String^ value )
      {
         lookupDir = value;
      }

   }

   property int AutoSaveTime
   {
      int get()
      {
         return autoSaveTime;
      }

      void set( int value )
      {
         autoSaveTime = value;
      }

   }

   property Boolean ShowStatusBar
   {
      Boolean get()
      {
         return showStatusBar;
      }

      void set( Boolean value )
      {
         showStatusBar = value;
      }

   }
   AppSettings()
   {

      // Create default application settings.
      aspectRatio = 1.3333F;
      lookupDir =  "C:\\AppDirectory";
      autoSaveTime = 30;
      showStatusBar = false;
      if ( File::Exists( fileName ) )
      {

         BinaryReader^ binReader = gcnew BinaryReader( File::Open( fileName, FileMode::Open ) );
         try
         {


            // If the file is not empty,
            // read the application settings.
            // First read 4 bytes into a buffer to
            // determine if the file is empty.
            array<Byte>^testArray = gcnew array<Byte>(3);
            int count = binReader->Read(testArray, 0, 3);
            if ( count != -1 )
            {

               // Reset the position in the stream to zero.
               binReader->BaseStream->Seek(0, SeekOrigin::Begin);

               aspectRatio = binReader->ReadSingle();
               lookupDir = binReader->ReadString();
               autoSaveTime = binReader->ReadInt32();
               showStatusBar = binReader->ReadBoolean();
               return;
            }
         }
         // If the end of the stream is reached before reading
         // the four data values, ignore the error and use the
         // default settings for the remaining values.
         catch ( EndOfStreamException^ e )
         {
            Console::WriteLine( "{0} caught and ignored. "
            "Using default values.", e->GetType()->Name );
         }
         finally
         {
            binReader->Close();
         }


      }
   }


   // Create a file and store the application settings.
   void Close()
   {

      BinaryWriter^ binWriter = gcnew BinaryWriter( File::Open( fileName, FileMode::Create ) );
      try
      {
         binWriter->Write( aspectRatio );
         binWriter->Write( lookupDir );
         binWriter->Write( autoSaveTime );
         binWriter->Write( showStatusBar );
      }
      finally
      {
         binWriter->Close();
      }


   }

};

int main()
{

   // Load application settings.
   AppSettings^ appSettings = gcnew AppSettings;
   array<Object^>^someObject = {appSettings->AspectRatio.ToString(),appSettings->LookupDir,appSettings->AutoSaveTime.ToString(),appSettings->ShowStatusBar.ToString()};
   Console::WriteLine( "App settings:\nAspect Ratio: {0}, "
   "Lookup directory: {1},\nAuto save time: {2} minutes, "
   "Show status bar: {3}\n", someObject );

   // Change the settings.
   appSettings->AspectRatio = 1.250F;
   appSettings->LookupDir =  "C:\\Temp";
   appSettings->AutoSaveTime = 10;
   appSettings->ShowStatusBar = true;

   // Save the new settings.
   appSettings->Close();
}



.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

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.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Community Additions

Show:
© 2014 Microsoft