Share via


BufferedStream.Read メソッド

現在のバッファ ストリームから配列にバイトをコピーします。

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

パラメータ

  • array
    バイトをコピーするバッファ。
  • offset
    バイトの読み取りを開始するバッファのバイト オフセット。
  • count
    読み取るバイト数。

戻り値

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

例外

例外の種類 条件
ArgumentException array 長から offset を引いた値が count 未満です。
ArgumentNullException array が null 参照 (Visual Basic では Nothing) です。
ArgumentOutOfRangeException offset または count が負の値です。
IOException ストリームが開いていないか、 null 参照 (Visual Basic では Nothing) になっています。
NotSupportedException ストリームが読み取りをサポートしていません。
ObjectDisposedException ストリームが閉じられた後でメソッドが呼び出されました。

解説

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

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

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

使用例

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

 
' Receive data using the BufferedStream.
Console.WriteLine("Receiving data using BufferedStream.")
bytesReceived = 0
startTime = DateTime.Now
While bytesReceived < numberOfLoops * receivedData.Length
    bytesReceived += bufStream.Read( _
        receivedData, 0, receivedData.Length)
End While
bufferedTime = DateTime.Now.Subtract(startTime).TotalSeconds
Console.WriteLine("{0} bytes received in {1} " & _
    "seconds." & vbCrLf, _
    bytesReceived.ToString(), _
    bufferedTime.ToString("F1"))

[C#] 
// Receive data using the BufferedStream.
Console.WriteLine("Receiving data using BufferedStream.");
bytesReceived = 0;
startTime = DateTime.Now;
while(bytesReceived < numberOfLoops * receivedData.Length)
{
    bytesReceived += bufStream.Read(
        receivedData, 0, receivedData.Length);
}
bufferedTime = (DateTime.Now - startTime).TotalSeconds;
Console.WriteLine("{0} bytes received in {1} seconds.\n",
    bytesReceived.ToString(), 
    bufferedTime.ToString("F1"));

[C++] 
// Receive data using the BufferedStream.
Console::WriteLine("Receiving data using BufferedStream.");
bytesReceived = 0;
startTime = DateTime::Now;
while(bytesReceived < numberOfLoops * receivedData->Length)
{
    bytesReceived += bufStream->Read(
        receivedData, 0, receivedData->Length);
}
bufferedTime = (DateTime::Now - startTime).TotalSeconds;
Console::WriteLine(S"{0} bytes received in {1} seconds.\n",
    bytesReceived.ToString(), 
    bufferedTime.ToString("F1"));

[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 ファミリ

参照

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