次の方法で共有


MemoryStream.Read メソッド

現在のストリームからバイトのブロックを読み取り、データを buffer に書き込みます。

Overrides Public Function Read( _
   <InteropServices.In(), _
   Out()> ByVal buffer() As Byte, _   ByVal offset As Integer, _   ByVal count As Integer _) As Integer
[C#]
public override int Read(   [   In,   Out] byte[] buffer,intoffset,intcount);
[C++]
public: int Read(   [   In,   Out] unsigned charbuffer __gc[],intoffset,intcount);
[JScript]
public override function Read(
   buffer : Byte[],offset : int,count : int) : int;

パラメータ

  • buffer
    このメソッドが戻るとき、指定したバイト配列の offset から (offset + count- 1) までの値が、現在のストリームから読み取られた文字に置き換えられています。
  • offset
    読み取りの開始位置を示す buffer 内のバイト オフセット。
  • count
    読み取る最大バイト数。

戻り値

バッファに書き込まれた合計バイト数。要求しただけのバイト数を読み取ることができなかった場合、この値は要求したバイト数より小さくなります。また、データを読み取る前にストリームの末尾に到達した場合は 0 になります。

例外

例外の種類 条件
ArgumentNullException buffer が null 参照 (Visual Basic では Nothing) です。
ArgumentOutOfRangeException offset または count が負の値です。
ArgumentException バッファ長から offset を差し引いた値が count より小さい値です。
ObjectDisposedException 現在のストリーム インスタンスが閉じています。

解説

ファイルの作成およびテキストのファイルへの書き込みの例については、「 ファイルへのテキストの書き込み 」を参照してください。ファイルからのテキストの読み取りの例については、「 ファイルからのテキストの読み取り 」を参照してください。バイナリ ファイルからの読み取りおよびバイナリ ファイルへの書き込みの例については、「 新しく作成したデータ ファイルの読み取りと書き込み 」を参照してください。

このメソッドは、 Read をオーバーライドします。

offset パラメータは、現在のストリームから書き込まれるデータに buffer の先頭バイトからのオフセットを指定します。 count パラメータは、現在のストリームから読み込む最大バイト数を指定します。戻り値は、実際に読み取ったバイト数であり、ストリームの末尾に到達している場合は 0 です。

読み取り操作が正常に終了した場合、ストリームの現在位置は読み取ったバイト数だけ進みます。例外が発生した場合、ストリームの現在位置は変更されません。

Read メソッドは、ストリームの末尾に到達した場合にだけ 0 を返します。それ以外の場合、 Read は常に戻り値を返す前にストリームから少なくとも 1 バイトを読み取ります。定義上は、 Read の呼び出し時にストリームにデータがない場合、 Read メソッドは 0 を返し、自動的にストリームの末尾に到達します。メソッドの実装は、ストリームの末尾に到達していない場合でも、要求された数に満たないバイトを返すようにすることができます。

プリミティブ データ型を読み取る場合は BinaryReader を使用します。

注意    buffer パラメータで指定したバイト配列が、 GetBuffer メソッドで返される基になるバッファの場合、配列の内容は上書きされ、例外はスローされません。

使用例

[Visual Basic, C#, C++] 次のコード例は MemoryStream クラスの例の一部です。

 
' Read the first 20 bytes from the stream.
byteArray = _
    New Byte(CType(memStream.Length, Integer)){}
count = memStream.Read(byteArray, 0, 20)

[C#] 
// Read the first 20 bytes from the stream.
byteArray = new byte[memStream.Length];
count = memStream.Read(byteArray, 0, 20);

[C++] 
// Read the first 20 bytes from the stream.
byteArray = new Byte __gc[memStream->Length];
count = memStream->Read(byteArray, 0, 20);

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

MemoryStream クラス | MemoryStream メンバ | System.IO 名前空間 | 入出力操作 | ファイルからのテキストの読み取り | ファイルへのテキストの書き込み