이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

Stream.Read 메서드 (Byte[], Int32, Int32)

 

게시 날짜: 2016년 11월

파생 클래스에서 재정의되면 현재 스트림에서 바이트의 시퀀스를 읽고, 읽은 바이트 수만큼 스트림 내에서 앞으로 이동합니다.

네임스페이스:   System.IO
어셈블리:  mscorlib(mscorlib.dll에 있음)

public abstract int Read(
	byte[] buffer,
	int offset,
	int count
)

매개 변수

buffer
Type: System.Byte[]

바이트 배열입니다. 이 메서드가 반환될 때 버퍼에는 지정된 바이트 배열의 값이 offset 및 (offset + count - 1) 사이에서 현재 원본으로부터 읽어온 바이트로 교체된 상태로 포함됩니다.

offset
Type: System.Int32

현재 스트림에서 읽은 데이터를 저장하기 시작하는 buffer의 바이트 오프셋(0부터 시작)입니다.

count
Type: System.Int32

현재 스트림에서 읽을 최대 바이트 수입니다.

반환 값

Type: System.Int32

버퍼로 읽어온 총 바이트 수입니다. 이 바이트 수는 현재 바이트가 충분하지 않은 경우 요청된 바이트 수보다 작을 수 있으며 스트림의 끝에 도달하면 0이 됩니다.

Exception Condition
ArgumentException

offsetcount의 합계가 버퍼 길이보다 큽니다.

ArgumentNullException

buffernull인 경우

ArgumentOutOfRangeException

offset 또는 count가 음수입니다.

IOException

I/O 오류가 발생했습니다.

NotSupportedException

스트림이 읽기를 지원하지 않습니다.

ObjectDisposedException

스트림이 닫힌 후에 메서드가 호출되었습니다.

사용 하는 CanRead 속성을 현재 인스턴스에 읽기를 지원 하는지 여부를 확인 합니다. 사용 하 여는 ReadAsync 메서드를 현재 스트림에에서 비동기적으로 읽습니다.

이 메서드의 구현에서는 읽기 최대 count 바이트 스트림 및에 보관해 두면 buffer 부터 offset합니다. 읽은 바이트 수 만큼 스트림 내의 현재 위치는 고급 그러나 예외가 발생 하는 경우 스트림 내의 현재 위치 변경 되지 않습니다. 구현 읽은 바이트 수를 반환 합니다. 에 데이터가 없는 구현은 최소한 1 바이트의 데이터를 읽을 수 때까지 차단 됩니다. Read스트림에서 더 이상 데이터 (예: 닫힌된 소켓 또는 파일의 끝) 더 이상 예상 되는 경우에 0을 반환 합니다. 구현을 스트림의 끝에 도달 하지 않더라도 요청 된 것 보다 적은 바이트를 반환할 수 있습니다.

사용 하 여 BinaryReader 읽는 기본 데이터 형식입니다.

다음 예제를 사용 하는 방법을 보여 줍니다 Read 데이터 블록을 읽을 수 있습니다.

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);
    }
}

유니버설 Windows 플랫폼
8 이후 사용 가능
.NET Framework
1.1 이후 사용 가능
이식 가능한 클래스 라이브러리
이식 가능한 .NET 플랫폼 에서 지원됨
Silverlight
2.0 이후 사용 가능
Windows Phone Silverlight
7.0 이후 사용 가능
Windows Phone
8.1 이후 사용 가능
맨 위로 이동
표시: