Skip to main content
.NET Framework Class Library
BinaryWriterWrite Method (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.

Namespace:   System.IO
Assembly:  mscorlib (in mscorlib.dll)
Syntax
Public Overridable Sub Write ( _
	chars As [%$TOPIC/3a7e547s_en-us_VS_110_1_0_0_0_0%](), _
	index As [%$TOPIC/3a7e547s_en-us_VS_110_1_0_0_0_1%], _
	count As [%$TOPIC/3a7e547s_en-us_VS_110_1_0_0_0_2%] _
)
public virtual void Write(
	[%$TOPIC/3a7e547s_en-us_VS_110_1_0_1_0_0%][] chars,
	[%$TOPIC/3a7e547s_en-us_VS_110_1_0_1_0_1%] index,
	[%$TOPIC/3a7e547s_en-us_VS_110_1_0_1_0_2%] count
)
public:
virtual void Write(
	array<[%$TOPIC/3a7e547s_en-us_VS_110_1_0_2_0_0%]>^ chars, 
	[%$TOPIC/3a7e547s_en-us_VS_110_1_0_2_0_1%] index, 
	[%$TOPIC/3a7e547s_en-us_VS_110_1_0_2_0_2%] count
)
abstract Write : 
        chars:[%$TOPIC/3a7e547s_en-us_VS_110_1_0_3_0_0%][] * 
        index:[%$TOPIC/3a7e547s_en-us_VS_110_1_0_3_0_1%] * 
        count:[%$TOPIC/3a7e547s_en-us_VS_110_1_0_3_0_2%] -> unit  
override Write : 
        chars:[%$TOPIC/3a7e547s_en-us_VS_110_1_0_3_0_3%][] * 
        index:[%$TOPIC/3a7e547s_en-us_VS_110_1_0_3_0_4%] * 
        count:[%$TOPIC/3a7e547s_en-us_VS_110_1_0_3_0_5%] -> unit

Parameters

chars
Type: SystemChar

A character array containing the data to write.

index
Type: SystemInt32

The starting point in chars from which to begin writing.

count
Type: SystemInt32

The number of characters to write.

Exceptions
ExceptionCondition
ArgumentException

The buffer length minus index is less than count.

ArgumentNullException

chars is .

ArgumentOutOfRangeException

index or count is negative.

IOException

An I/O error occurs.

ObjectDisposedException

The stream is closed.

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 data using memory as a backing store.

Imports System
Imports System.IO

Public Class BinaryRW

    Shared Sub Main()

        Dim invalidPathChars() As Char = Path.InvalidPathChars
        Dim memStream As new MemoryStream()
        Dim binWriter As New BinaryWriter(memStream)

        ' Write to memory.
        binWriter.Write("Invalid file path characters are: ")
        binWriter.Write(Path.InvalidPathChars, 0, _
            Path.InvalidPathChars.Length)

        ' Create the reader using the same MemoryStream  
        ' as used with the writer. 
        Dim binReader As New BinaryReader(memStream)

        ' Set Position to the beginning of the stream.
        memStream.Position = 0

        ' Read the data from memory and write it to the console.
        Console.Write(binReader.ReadString())
        Dim upperBound As Integer = _
            CInt(memStream.Length - memStream.Position) - 1
        Dim memoryData(upperBound) As Char
        binReader.Read(memoryData, 0, upperBound)
        Console.WriteLine(memoryData)

	End Sub 
End Class
using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        char[] invalidPathChars = Path.InvalidPathChars;
        MemoryStream memStream = new MemoryStream();
        BinaryWriter binWriter = new BinaryWriter(memStream);

        // Write to memory.
        binWriter.Write("Invalid file path characters are: ");
        binWriter.Write(
            Path.InvalidPathChars, 0, Path.InvalidPathChars.Length);

        // Create the reader using the same MemoryStream  
        // as used with the writer.
        BinaryReader binReader = new BinaryReader(memStream);

        // Set Position to the beginning of the stream.
        memStream.Position = 0;

        // Read the data from memory and write it to the console.
        Console.Write(binReader.ReadString());
        int arraySize = (int)(memStream.Length - memStream.Position);
        char[] memoryData = new char[arraySize];
        binReader.Read(memoryData, 0, arraySize);
        Console.WriteLine(memoryData);
    }
}
using namespace System;
using namespace System::IO;
int main()
{
   array<Char>^invalidPathChars = Path::InvalidPathChars;
   MemoryStream^ memStream = gcnew MemoryStream;
   BinaryWriter^ binWriter = gcnew BinaryWriter( memStream );

   // Write to memory.
   binWriter->Write( "Invalid file path characters are: " );
   binWriter->Write( Path::InvalidPathChars, 0, Path::InvalidPathChars->Length );

   // Create the reader using the same MemoryStream  
   // as used with the writer.
   BinaryReader^ binReader = gcnew BinaryReader( memStream );

   // Set Position to the beginning of the stream.
   binReader->BaseStream->Position = 0;

   // Read the data from memory and write it to the console.
   Console::Write( binReader->ReadString() );
   int arraySize = (int)(memStream->Length - memStream->Position);
   array<Char>^memoryData = gcnew array<Char>(arraySize);
   binReader->Read( memoryData, 0, arraySize );
   Console::WriteLine( memoryData );
}
Version Information

.NET Framework

Supported in: 4.5, 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

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8
Platforms

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.