MemoryStream 클래스

2013-12-13

백업 저장소가 메모리인 스트림을 만듭니다.

System.Object
  System.IO.Stream
    System.IO.MemoryStream

Namespace:  System.IO
어셈블리:  mscorlib(mscorlib.dll)

public class MemoryStream : Stream

MemoryStream 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드MemoryStream()0으로 초기화된 확장 가능한 용량을 사용하여 MemoryStream 클래스의 새 인스턴스를 초기화합니다.
Public 메서드MemoryStream(Byte[])지정된 바이트 배열을 기반으로 하는 MemoryStream 클래스의 크기 조정이 불가능한 새 인스턴스를 초기화합니다.
Public 메서드MemoryStream(Int32)지정된 대로 초기화된 확장 가능한 용량을 사용하여 MemoryStream 클래스의 새 인스턴스를 초기화합니다.
Public 메서드MemoryStream(Byte[], Boolean)지정된 대로 설정된 CanWrite 속성을 사용하여 지정된 바이트 배열을 기반으로 하는 MemoryStream 클래스의 크기 조정이 불가능한 새 인스턴스를 초기화합니다.
Public 메서드MemoryStream(Byte[], Int32, Int32)바이트 배열의 지정된 영역(인덱스)을 기반으로 하는 MemoryStream 클래스의 크기 조정이 불가능한 새 인스턴스를 초기화합니다.
Public 메서드MemoryStream(Byte[], Int32, Int32, Boolean)지정된 대로 설정된 CanWrite 속성을 사용하여 지정된 바이트 배열의 영역을 기반으로 하는 MemoryStream 클래스의 크기 조정이 불가능한 새 인스턴스를 초기화합니다.
Public 메서드MemoryStream(Byte[], Int32, Int32, Boolean, Boolean)지정된 대로 설정된 CanWrite 속성과 지정된 대로 설정된 GetBuffer 호출 기능을 사용하여 지정된 바이트 배열의 영역을 기반으로 하는 MemoryStream 클래스의 새 인스턴스를 초기화합니다.
맨 위

  이름설명
Public 속성CanRead현재 스트림이 읽기를 지원하는지 여부를 나타내는 값을 가져옵니다. (Stream.CanRead을(를) 재정의함)
Public 속성CanSeek현재 스트림이 검색을 지원하는지 여부를 나타내는 값을 가져옵니다. (Stream.CanSeek을(를) 재정의함)
Public 속성CanTimeout현재 스트림이 시간 초과될 수 있는지 여부를 결정하는 값을 가져옵니다. (Stream에서 상속됨)
Public 속성CanWrite현재 스트림이 쓰기를 지원하는지 여부를 나타내는 값을 가져옵니다. (Stream.CanWrite을(를) 재정의함)
Public 속성Capacity이 스트림에 할당된 바이트 수를 가져오거나 설정합니다.
Public 속성Length스트림의 길이(바이트)를 가져옵니다. (Stream.Length을(를) 재정의함)
Public 속성Position스트림 내의 현재 위치를 가져오거나 설정합니다. (Stream.Position을(를) 재정의함)
Public 속성ReadTimeout스트림 읽기 시도가 만료되기 전까지 기다릴 시간을 결정하는 값을 밀리초 단위로 가져오거나 설정합니다. (Stream에서 상속됨)
Public 속성WriteTimeout스트림 쓰기 시도가 만료되기 전까지 기다릴 시간을 결정하는 값을 밀리초 단위로 가져오거나 설정합니다. (Stream에서 상속됨)
맨 위

  이름설명
Public 메서드BeginRead비동기 읽기 작업을 시작합니다. (Stream에서 상속됨)
Public 메서드BeginWrite비동기 쓰기 작업을 시작합니다. (Stream에서 상속됨)
Public 메서드Close현재 스트림을 닫고 현재 스트림과 관련된 소켓과 파일 핸들 등의 리소스를 모두 해제합니다. (Stream에서 상속됨)
Public 메서드CopyTo(Stream)현재 스트림에서 모든 바이트를 읽어 대상 스트림에 씁니다. (Stream에서 상속됨)
Public 메서드CopyTo(Stream, Int32)현재 스트림에서 모든 바이트를 읽어 지정된 버퍼 크기로 대상 스트림에 씁니다. (Stream에서 상속됨)
Public 메서드CopyToAsync(Stream)현재 스트림에서 비동기적으로 바이트를 읽은 후 다른 스트림에 씁니다. (Stream에서 상속됨)
Public 메서드CopyToAsync(Stream, Int32)현재 스트림에서 바이트를 비동기적으로 읽은 다음 지정된 버퍼 크기로 다른 스트림에 씁니다. (Stream에서 상속됨)
Public 메서드CopyToAsync(Stream, Int32, CancellationToken)현재 스트림에서 바이트를 비동기적으로 읽은 다음 지정된 버퍼 크기 및 취소 토큰을 사용하여 다른 스트림에 씁니다. (Stream에서 상속됨)
Public 메서드Dispose()Stream에서 사용하는 모든 리소스를 해제합니다. (Stream에서 상속됨)
Protected 메서드Dispose(Boolean)MemoryStream 클래스에 사용되는 관리되지 않는 리소스를 해제하고 선택적으로 관리되는 리소스를 해제합니다. (Stream.Dispose(Boolean)을(를) 재정의함)
Public 메서드EndRead보류 중인 비동기 읽기가 완료되기를 기다립니다. (Stream에서 상속됨)
Public 메서드EndWrite비동기 쓰기 작업을 끝냅니다. (Stream에서 상속됨)
Public 메서드Equals(Object)지정한 Object가 현재 Object와 같은지 확인합니다. (Object에서 상속됨)
Protected 메서드Finalize가비지 수집기에서 Object를 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드FlushStream.Flush를 재정의하여 아무런 동작도 수행되지 않도록 합니다. (Stream.Flush()을(를) 재정의함)
Public 메서드FlushAsync()이 스트림에 대한 모든 버퍼를 비동기적으로 지우고 버퍼링된 모든 데이터가 내부 장치에 쓰여지도록 합니다. (Stream에서 상속됨)
Public 메서드FlushAsync(CancellationToken)비동기적으로 이 스트림에 대한 모든 버퍼를 지우고 취소 요청을 모니터링합니다. (Stream.FlushAsync(CancellationToken)을(를) 재정의함)
Public 메서드GetBuffer이 스트림을 만드는 데 사용된 부호 없는 바이트의 배열을 반환합니다.
Public 메서드GetHashCode특정 형식에 대한 해시 함수 역할을 합니다. (Object에서 상속됨)
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드Read현재 스트림에서 바이트 블록을 읽어서 데이터를 버퍼에 기록합니다. (Stream.Read(Byte[], Int32, Int32)을(를) 재정의함)
Public 메서드ReadAsync(Byte[], Int32, Int32)현재 스트림에서 바이트 시퀀스를 비동기적으로 읽고 읽은 바이트 수만큼 스트림에서 위치를 앞으로 이동합니다. (Stream에서 상속됨)
Public 메서드ReadAsync(Byte[], Int32, Int32, CancellationToken)현재 스트림에서 바이트 시퀀스를 비동기적으로 읽고, 읽은 바이트 수만큼 스트림에서 위치를 앞으로 이동하고, 취소 요청을 모니터링합니다. (Stream.ReadAsync(Byte[], Int32, Int32, CancellationToken)을(를) 재정의함)
Public 메서드ReadByte현재 스트림에서 바이트를 읽습니다. (Stream.ReadByte()을(를) 재정의함)
Public 메서드Seek현재 스트림 내의 위치를 지정된 값으로 설정합니다. (Stream.Seek(Int64, SeekOrigin)을(를) 재정의함)
Public 메서드SetLength현재 스트림의 길이를 지정된 값으로 설정합니다. (Stream.SetLength(Int64)을(를) 재정의함)
Public 메서드ToArrayPosition 속성에 관계없이 바이트 배열에 스트림 내용을 씁니다.
Public 메서드ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
Public 메서드Write버퍼에서 읽은 데이터를 사용하여 현재 스트림에 바이트 블록을 씁니다. (Stream.Write(Byte[], Int32, Int32)을(를) 재정의함)
Public 메서드WriteAsync(Byte[], Int32, Int32)현재 스트림에 바이트 시퀀스를 비동기적으로 쓰고 쓴 바이트 수만큼 이 스트림에서 현재 위치를 앞으로 이동합니다. (Stream에서 상속됨)
Public 메서드WriteAsync(Byte[], Int32, Int32, CancellationToken)현재 스트림에 바이트 시퀀스를 비동기적으로 쓰고, 쓴 바이트 수만큼 이 스트림에서 현재 위치를 앞으로 이동하고, 취소 요청을 모니터링합니다. (Stream.WriteAsync(Byte[], Int32, Int32, CancellationToken)을(를) 재정의함)
Public 메서드WriteByte현재 위치에서 현재 스트림에 바이트를 씁니다. (Stream.WriteByte(Byte)을(를) 재정의함)
Public 메서드WriteTo다른 스트림에 이 메모리 스트림의 전체 내용을 씁니다.
맨 위

  이름설명
Public 확장 메서드AsInputStreamWindows 스토어 앱용 .NET의 관리되는 스트림을 Windows 런타임의 입력 스트림으로 변환합니다. (WindowsRuntimeStreamExtensions에서 정의됨)
Public 확장 메서드AsOutputStreamWindows 스토어 앱용 .NET의 관리되는 스트림을 Windows 런타임의 출력 스트림으로 변환합니다. (WindowsRuntimeStreamExtensions에서 정의됨)
Public 확장 메서드GetWindowsRuntimeBuffer()오버로드. 지정한 메모리 스트림과 동일한 메모리를 나타내는 Windows.Storage.Streams.IBuffer 인터페이스를 반환합니다. (WindowsRuntimeBufferExtensions에서 정의됨)
Public 확장 메서드GetWindowsRuntimeBuffer(Int32, Int32)오버로드. 지정된 메모리 스트림이 나타내는 메모리 내의 영역을 나타내는 Windows.Storage.Streams.IBuffer 인터페이스입니다. (WindowsRuntimeBufferExtensions에서 정의됨)
맨 위

MemoryStream 클래스는 디스크 또는 네트워크 연결 대신 메모리를 백업 저장소로 사용하는 스트림을 만듭니다. MemoryStreamMemoryStream 개체를 만들 때 초기화된 부호 없는 바이트 배열로 저장된 데이터를 캡슐화하거나, 배열을 빈 배열로 만들 수 있습니다. 캡슐화된 데이터는 메모리에서 직접 액세스할 수 있습니다. 메모리 스트림을 사용하면 응용프로그램의 임시 버퍼 및 파일의 필요성을 줄일 수 있습니다.

스트림의 현재 위치는 다음 읽기 또는 쓰기 작업이 수행되는 위치입니다. 현재 위치는 Seek 메서드를 통해 검색하거나 설정할 수 있습니다. MemoryStream의 새 인스턴스가 만들어지면 현재 위치가 0으로 설정됩니다.

부호 없는 바이트 배열을 사용하여 만든 메모리 스트림에서는 크기 조정 불가능한 데이터 스트림을 제공합니다. 바이트 배열을 사용하는 경우에는 생성자에 전달된 매개 변수에 따라 기존 내용을 수정할 수는 있지만 스트림에 추가하거나 스트림을 줄일 수는 없습니다. 빈 메모리 스트림은 크기를 조정할 수 있으며 읽거나 쓸 수 있습니다.

MemoryStream 개체가 ResX 파일이나 .resources 파일에 추가된 경우 런타임에 해당 개체를 검색하려면 GetStream 메서드를 호출합니다.

MemoryStream 개체를 리소스 파일로 직렬화할 경우 이 개체는 실제로 UnmanagedMemoryStream으로 직렬화됩니다. 이렇게 하면 성능이 향상될 뿐 아니라 Stream 메서드를 통하지 않고도 데이터에 대한 포인터를 직접 가져올 수 있습니다.

버전 메모

Windows Phone

 ArrayTypeMismatchException은 응용프로그램이 MemoryStream 개체에서 Stream.Null을 저장하려고 시도할 때는 발생하지 않습니다.

Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 모든 인스턴스 멤버는 스레드로부터 안전하지 않을 수 있습니다.

표시:
© 2014 Microsoft