MemoryStream Constructor (Byte[], Int32, Int32)

Initializes a new non-resizable instance of the MemoryStream class based on the specified region (index) of a byte array.

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

public MemoryStream (
	byte[] buffer,
	int index,
	int count
public MemoryStream (
	byte[] buffer, 
	int index, 
	int count
public function MemoryStream (
	buffer : byte[], 
	index : int, 
	count : int



The array of unsigned bytes from which to create this stream.


The index into buffer at which the stream begins.


The length of the stream in bytes.

Exception typeCondition


buffer is a null reference (Nothing in Visual Basic).


index or count is less than zero.


The sum of index and count is greater than the length of buffer.

For an example of creating a file and writing text to a file, see How to: Write Text to a File. For an example of reading text from a file, see How to: Read Text from a File. For an example of reading from and writing to a binary file, see How to: Read and Write to a Newly Created Data File.

The CanRead, CanSeek, and CanWrite properties are all set to true, but the capacity cannot be changed. Capacity is set to count.

The length of the stream cannot be set to a value greater than the initial length of the specified byte array; however, the stream can be truncated (see SetLength).

This constructor does not expose the underlying stream. GetBuffer throws UnauthorizedAccessException. However, you can write to the stream.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

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

.NET Framework

Supported in: 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0