Stream.Read Stream.Read Stream.Read Stream.Read Method

定義

オーバーロード

Read(Span<Byte>) Read(Span<Byte>) Read(Span<Byte>) Read(Span<Byte>)

派生クラスによってオーバーライドされた場合は、現在のストリームからバイト シーケンスを読み取り、読み取ったバイト数の分だけストリームの位置を進めます。When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.

Read(Byte[], Int32, Int32) Read(Byte[], Int32, Int32) Read(Byte[], Int32, Int32) Read(Byte[], Int32, Int32)

派生クラスによってオーバーライドされた場合は、現在のストリームからバイト シーケンスを読み取り、読み取ったバイト数の分だけストリームの位置を進めます。When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.

Read(Span<Byte>) Read(Span<Byte>) Read(Span<Byte>) Read(Span<Byte>)

派生クラスによってオーバーライドされた場合は、現在のストリームからバイト シーケンスを読み取り、読み取ったバイト数の分だけストリームの位置を進めます。When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.

public:
 virtual int Read(Span<System::Byte> buffer);
public virtual int Read (Span<byte> buffer);
abstract member Read : Span<byte> -> int
override this.Read : Span<byte> -> int
Public Overridable Function Read (buffer As Span(Of Byte)) As Integer

パラメーター

buffer
Span<Byte>

メモリの領域。A region of memory. このメソッドが戻ると、この領域のコンテンツは現在のソースから読み取られたバイトに置き換えられます。When this method returns, the contents of this region are replaced by the bytes read from the current source.

戻り値

バッファーに読み取られた合計バイト数。The total number of bytes read into the buffer. 要求しただけのバイト数を読み取ることができなかった場合、この値はバッファーに割り当てられているバイト数より小さくなります。ストリームの末尾に到達した場合は 0 (ゼロ) になることがあります。This can be less than the number of bytes allocated in the buffer if that many bytes are not currently available, or zero (0) if the end of the stream has been reached.

注釈

使用して、CanReadプロパティを現在のインスタンスが読み取りをサポートするかどうかを判断します。Use the CanRead property to determine whether the current instance supports reading. 使用して、ReadAsyncメソッドが現在のストリームから非同期的にします。Use the ReadAsync method to read asynchronously from the current stream.

このメソッドの実装の最大を読み取るbuffer.Length現在からのバイト ストリームし、格納にbufferします。Implementations of this method read a maximum of buffer.Length bytes from the current stream and store them in buffer. ストリーム内の現在位置が読み取り、バイト数で高度なただし、例外が発生する場合は、ストリーム内の現在の位置は変更されません。The current position within the stream is advanced by the number of bytes read; however, if an exception occurs, the current position within the stream remains unchanged. 実装では、読み取られたバイト数を返します。Implementations return the number of bytes read. 実装は、データがないことを少なくとも 1 バイトのデータを読み取ることができます、までブロックされます。The implementation will block until at least one byte of data can be read, in the event that no data is available. Read ストリームのデータがあるし、(閉じているソケットやファイルの終わり) など他の必要はない場合にのみ、0 を返します。Read returns 0 only when there is no more data in the stream and no more is expected (such as a closed socket or end of file). 実装は自由に、ストリームの末尾に達していない場合でも、要求されたより少ないバイト数を返します。An implementation is free to return fewer bytes than requested even if the end of the stream has not been reached.

使用BinaryReaderプリミティブ データ型を読み取るためです。Use BinaryReader for reading primitive data types.

Read(Byte[], Int32, Int32) Read(Byte[], Int32, Int32) Read(Byte[], Int32, Int32) Read(Byte[], Int32, Int32)

派生クラスによってオーバーライドされた場合は、現在のストリームからバイト シーケンスを読み取り、読み取ったバイト数の分だけストリームの位置を進めます。When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.

public:
 abstract int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public abstract int Read (byte[] buffer, int offset, int count);
abstract member Read : byte[] * int * int -> int
Public MustOverride Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer

パラメーター

buffer
Byte[]

バイト配列。An array of bytes. このメソッドが戻るとき、指定したバイト配列の offset から (offset + count - 1) までの値が、現在のソースから読み取られたバイトに置き換えられます。When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source.

offset
Int32 Int32 Int32 Int32

現在のストリームから読み取ったデータの格納を開始する位置を示す buffer 内のバイト オフセット。インデックス番号は 0 から始まります。The zero-based byte offset in buffer at which to begin storing the data read from the current stream.

count
Int32 Int32 Int32 Int32

現在のストリームから読み取る最大バイト数。The maximum number of bytes to be read from the current stream.

戻り値

バッファーに読み取られた合計バイト数。The total number of bytes read into the buffer. 要求しただけのバイト数を読み取ることができなかった場合、この値は要求したバイト数より小さくなります。ストリームの末尾に到達した場合は 0 (ゼロ) になることがあります。This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached.

例外

offsetcount の合計が、バッファーの長さよりも大きいです。The sum of offset and count is larger than the buffer length.

offset または count が負の値です。offset or count is negative.

I/O エラーが発生します。An I/O error occurs.

ストリームは読み取りをサポートしません。The stream does not support reading.

ストリームが閉じた後でメソッドが呼び出されました。Methods were called after the stream was closed.

次の例は、使用する方法を示しますReadするデータ ブロックを読み取ります。The following example shows how to use Read to read a block of data.

using namespace System;
using namespace System::IO;

public ref class Block
{
public:
    static void Main()
    {
        Stream^ s = gcnew MemoryStream();
        for (int i = 0; i < 100; i++)
        {
            s->WriteByte((Byte)i);
        }
        s->Position = 0;

        // Now read s into a byte buffer.
        array<Byte>^ bytes = gcnew array<Byte>(s->Length);
        int numBytesToRead = (int) s->Length;
        int numBytesRead = 0;
        while (numBytesToRead > 0)
        {
            // Read may return anything from 0 to 10.
            int n = s->Read(bytes, numBytesRead, 10);
            // The end of the file is reached.
            if (n == 0)
            {
                break;
            }
            numBytesRead += n;
            numBytesToRead -= n;
        }
        s->Close();
        // numBytesToRead should be 0 now, and numBytesRead should
        // equal 100.
        Console::WriteLine("number of bytes read: {0:d}", numBytesRead);
    }
};

int main()
{
    Block::Main();
}
using System;
using System.IO;

public class Block
{
    public static void Main()
    {
        Stream s = new MemoryStream();
        for (int i = 0; i < 122; i++)
        {
            s.WriteByte((byte)i);
        }
        s.Position = 0;

        // Now read s into a byte buffer with a little padding.
        byte[] bytes = new byte[s.Length + 10];
        int numBytesToRead = (int)s.Length;
        int numBytesRead = 0;
        do
        {
            // Read may return anything from 0 to 10.
            int n = s.Read(bytes, numBytesRead, 10);
            numBytesRead += n;
            numBytesToRead -= n;
        } while (numBytesToRead > 0);
        s.Close();
       
        Console.WriteLine("number of bytes read: {0:d}", numBytesRead);
    }
}
Imports System
Imports System.IO

Public Class Block
    Public Shared Sub Main()
        Dim s As Stream = New MemoryStream()
        For i As Integer = 0 To 121
            s.WriteByte(CType(i, Byte))
        Next i
        s.Position = 0

        ' Now read s into a byte buffer that is padded slightly.
        Dim bytes(s.Length + 10) As Byte
        Dim numBytesToRead As Integer = s.Length
        Dim numBytesRead As Integer = 0
        Dim n As Integer
        Do
            ' Read may return anything from 0 to 10.
            n = s.Read(bytes, numBytesRead, 10)
            ' The end of the file is reached.
            numBytesRead += n
            numBytesToRead -= n
        Loop While numBytesToRead > 0

        s.Close()
    
        Console.WriteLine("number of bytes read: {0:d}", numBytesRead)
    End Sub
End Class

注釈

使用して、CanReadプロパティを現在のインスタンスが読み取りをサポートするかどうかを判断します。Use the CanRead property to determine whether the current instance supports reading. 使用して、ReadAsyncメソッドが現在のストリームから非同期的にします。Use the ReadAsync method to read asynchronously from the current stream.

このメソッドの実装の最大を読み取るcount現在からのバイト ストリームし、格納にbufferから始まるoffsetします。Implementations of this method read a maximum of count bytes from the current stream and store them in buffer beginning at offset. ストリーム内の現在位置が読み取り、バイト数で高度なただし、例外が発生する場合は、ストリーム内の現在の位置は変更されません。The current position within the stream is advanced by the number of bytes read; however, if an exception occurs, the current position within the stream remains unchanged. 実装では、読み取られたバイト数を返します。Implementations return the number of bytes read. 実装は、データがないことを少なくとも 1 バイトのデータを読み取ることができます、までブロックされます。The implementation will block until at least one byte of data can be read, in the event that no data is available. Read ストリームのデータがあるし、(閉じているソケットやファイルの終わり) など他の必要はない場合にのみ、0 を返します。Read returns 0 only when there is no more data in the stream and no more is expected (such as a closed socket or end of file). 実装は自由に、ストリームの末尾に達していない場合でも、要求されたより少ないバイト数を返します。An implementation is free to return fewer bytes than requested even if the end of the stream has not been reached.

使用BinaryReaderプリミティブ データ型を読み取るためです。Use BinaryReader for reading primitive data types.

こちらもご覧ください

適用対象