내보내기(0) 인쇄
모두 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

Stream 클래스

바이트 시퀀스에 대한 일반 뷰를 제공합니다.

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

[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Stream : MarshalByRefObject, 
	IDisposable

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

  이름설명
Protected 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETStream Stream 클래스의 새 인스턴스를 초기화합니다.
위쪽

  이름설명
Public 속성XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETCanRead파생 클래스에서 재정의될 때 현재 스트림이 읽기를 지원하는지 여부를 나타내는 값을 가져옵니다.
Public 속성XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETCanSeek파생 클래스에서 재정의될 때 현재 스트림이 검색을 지원하는지 여부를 나타내는 값을 가져옵니다.
Public 속성XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETCanTimeout현재 스트림이 시간 초과될 수 있는지 여부를 결정하는 값을 가져옵니다.
Public 속성XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETCanWrite파생 클래스에서 재정의될 때 현재 스트림이 쓰기를 지원하는지 여부를 나타내는 값을 가져옵니다.
Public 속성XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETLength파생 클래스에서 재정의된 경우 스트림 바이트의 길이를 가져옵니다.
Public 속성XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETPosition파생 클래스에서 재정의되면 현재 스트림 내의 위치를 가져오거나 설정합니다.
Public 속성XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETReadTimeout스트림 읽기 시도가 만료되기 전까지 기다릴 시간을 결정하는 값을 밀리초 단위로 가져오거나 설정합니다.
Public 속성XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETWriteTimeout스트림 쓰기 시도가 만료되기 전까지 기다릴 시간을 결정하는 값을 밀리초 단위로 가져오거나 설정합니다.
위쪽

  이름설명
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리BeginRead비동기 읽기 작업을 시작합니다. (ReadAsync를 대신 사용하는 것이 좋습니다. 설명 부분을 참조하십시오.)
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리BeginWrite비동기 쓰기 작업을 시작합니다. (WriteAsync를 대신 사용하는 것이 좋습니다. 설명 부분을 참조하십시오.)
Public 메서드XNA Framework에서 지원Close현재 스트림을 닫고 현재 스트림과 관련된 소켓과 파일 핸들 등의 리소스를 모두 해제합니다. 이 메서드를 호출하는 대신 스트림이 올바르게 삭제되었는지 확인합니다.
Public 메서드에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETCopyTo(Stream)현재 스트림에서 바이트를 읽어서 다른 스트림에 해당 바이트를 기록합니다.
Public 메서드에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETCopyTo(Stream, Int32)현재 스트림에서 바이트를 읽어 지정된 버퍼 크기로 다른 스트림에 씁니다.
Public 메서드다음에서 지원: Windows 스토어 앱용 .NETCopyToAsync(Stream)현재 스트림에서 모든 바이트를 비동기적으로 읽어 다른 스트림에 씁니다.
Public 메서드다음에서 지원: Windows 스토어 앱용 .NETCopyToAsync(Stream, Int32)현재 스트림에서 바이트를 비동기적으로 읽어 지정된 버퍼 크기로 다른 스트림에 씁니다.
Public 메서드다음에서 지원: Windows 스토어 앱용 .NETCopyToAsync(Stream, Int32, CancellationToken)현재 스트림에서 바이트를 비동기적으로 읽어 지정된 버퍼 크기 및 취소 토큰을 사용하여 다른 스트림에 씁니다.
Public 메서드CreateObjRef원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다. (MarshalByRefObject에서 상속됨)
Protected 메서드XNA Framework에서 지원CreateWaitHandle 사용되지 않습니다. WaitHandle 개체를 할당합니다.
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETDispose() Stream 에서 사용하는 모든 리소스를 해제합니다.
Protected 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETDispose(Boolean) Stream 에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리EndRead보류 중인 비동기 읽기가 완료되기를 기다립니다. (ReadAsync를 대신 사용하는 것이 좋습니다. 설명 부분을 참조하십시오.)
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리EndWrite비동기 쓰기 작업을 끝냅니다. (WriteAsync를 대신 사용하는 것이 좋습니다. 설명 부분을 참조하십시오.)
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETEquals(Object) 지정한 개체가 현재 개체와 같은지 여부를 확인합니다. (Object에서 상속됨)
Protected 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETFinalize 개체가 가비지 수집자에서 회수되기 전에, 해당 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETFlush파생 클래스에서 재정의될 때 이 스트림에 대해 모든 버퍼를 지우고 버퍼링된 데이터가 내부 장치에 쓰여지도록 합니다.
Public 메서드다음에서 지원: Windows 스토어 앱용 .NETFlushAsync()이 스트림에 대한 모든 버퍼를 비동기적으로 지우고 버퍼링된 모든 데이터가 내부 장치에 비동기적으로 쓰여지도록 합니다.
Public 메서드다음에서 지원: Windows 스토어 앱용 .NETFlushAsync(CancellationToken)이 스트림에 대해 모든 버퍼를 비동기적으로 지우고 버퍼링된 데이터가 내부 장치에 쓰여지도록 하고 취소 요청을 모니터링합니다.
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETGetHashCode기본 해시 함수로 작동합니다. (Object에서 상속됨)
Public 메서드GetLifetimeService이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다. (MarshalByRefObject에서 상속됨)
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETGetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드InitializeLifetimeService이 인스턴스의 수명 정책을 제어하기 위한 수명 서비스 개체를 가져옵니다. (MarshalByRefObject에서 상속됨)
Protected 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETMemberwiseClone()현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Protected 메서드MemberwiseClone(Boolean)현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다. (MarshalByRefObject에서 상속됨)
Protected 메서드ObjectInvariant인프라입니다. 사용되지 않습니다. Contract 에 대한 지원을 제공합니다.
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETRead파생 클래스에서 재정의될 때 현재 스트림에서 바이트의 시퀀스를 읽고 읽은 바이트 수만큼 스트림 내에서 앞으로 이동합니다.
Public 메서드다음에서 지원: Windows 스토어 앱용 .NETReadAsync(Byte[], Int32, Int32)현재 스트림에서 바이트 시퀀스를 읽고 읽은 바이트 수만큼 스트림에서 위치를 비동기적으로 앞으로 이동합니다.
Public 메서드다음에서 지원: Windows 스토어 앱용 .NETReadAsync(Byte[], Int32, Int32, CancellationToken)현재 스트림에서 바이트의 시퀀스를 비동기적으로 읽고 읽은 바이트 수만큼 스트림 내에서 앞으로 이동하며 취소 요청을 모니터링합니다.
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETReadByte스트림에서 바이트를 읽고 스트림 내 위치를 한 바이트씩 앞으로 이동하거나 스트림 끝일 경우 -1을 반환합니다.
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETSeek파생 클래스를 재정의될 때 현재 스트림 내의 위치를 설정합니다.
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETSetLength파생 클래스에 재정의될 때 현재 스트림의 길이를 설정합니다.
Public 메서드정적 멤버Synchronized지정된 Stream 개체에 대해 동기화되어 스레드로부터 안전하게 보호되는 래퍼를 만듭니다.
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETWrite파생 클래스를 재정의될 때 현재 스트림에 바이트의 시퀀스를 쓰고 쓰여진 바이트 수만큼 이 스트림 내에서 앞으로 이동합니다.
Public 메서드다음에서 지원: Windows 스토어 앱용 .NETWriteAsync(Byte[], Int32, Int32)현재 스트림에 바이트 시퀀스를 비동기적으로 쓰고 쓴 바이트 수만큼 이 스트림에서 현재 위치를 앞으로 이동합니다.
Public 메서드다음에서 지원: Windows 스토어 앱용 .NETWriteAsync(Byte[], Int32, Int32, CancellationToken)바이트의 시퀀스를 현재 스트림에 비동기적으로 쓰고 쓰여진 바이트 수만큼 이 스트림 내의 현재 위치를 앞으로 이동한 후 취소 요청을 모니터링합니다.
Public 메서드XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETWriteByte스트림의 현재 위치에 바이트를 쓰고 스트림 내 위치를 1바이트씩 앞으로 이동합니다.
위쪽

  이름설명
Public 확장 메서드다음에서 지원: Windows 스토어 앱용 .NETAsInputStreamWindows 스토어 앱용 .NET의 관리되는 스트림을 Windows 런타임의 입력 스트림으로 변환합니다. (WindowsRuntimeStreamExtensions에서 정의됨)
Public 확장 메서드다음에서 지원: Windows 스토어 앱용 .NETAsOutputStreamWindows 스토어 앱용 .NET의 관리되는 스트림을 Windows 런타임의 출력 스트림으로 변환합니다. (WindowsRuntimeStreamExtensions에서 정의됨)
위쪽

  이름설명
Public 필드정적 멤버XNA Framework에서 지원에서 지원 이식 가능한 클래스 라이브러리다음에서 지원: Windows 스토어 앱용 .NETNull백업 저장소가 없는 Stream입니다.
위쪽

스트림에는 다음의 세 가지 기본 작업이 포함됩니다.

  • 스트림에서 읽을 수 있습니다. 읽기는 스트림의 데이터를 바이트 배열 같은 데이터 구조로 전송하는 것입니다.

  • 스트림에 쓸 수 있습니다. 쓰기는 데이터 구조체에서 스트림으로 데이터를 전송하는 과정입니다.

  • 스트림은 검색을 지원할 수 있습니다. 검색 쿼리 및 수정 하는 스트림 내의 현재 위치를 나타냅니다. 검색 기능은 스트림에 있는 백업 저장소의 종류에 따라 다릅니다. 예를 들어, 네트워크 스트림에는 현재 위치의 통합 개념이 없으므로 일반적으로 검색을 지원하지 않습니다.

Stream 은 모든 스트림의 추상 기본 클래스입니다. 스트림은 파일, 입력/출력 장치, 프로세스 간 통신 파이프 또는 TCP/IP 소켓과 같은 바이트 시퀀스를 추상적으로 나타낸 것입니다. Stream 클래스와 해당 파생된 클래스는 이러한 다른 형식의 입력 및 출력의 일반 뷰를 제공 하 고 프로그래머가 특정 운영 체제 및 기본 장치의 세부 정보에서 격리 됩니다.

내부 데이터 소스 또는 리포지토리에 따라 스트림에서 이러한 기능 중 일부만 지원할 수도 있습니다. 사용 하면 해당 기능에 대 한 스트림을 쿼리할 수 있습니다는 CanRead, CanWrite, 및 CanSeek 속성의 Stream 클래스.

Read Write 메서드는 다양한 형식의 데이터를 읽고 씁니다. 검색을 지원하는 스트림의 경우 SeekSetLength 메서드와 PositionLength 속성을 사용하여 스트림의 현재 위치와 길이를 쿼리하고 수정합니다.

시작은 .NET Framework 4.5, Stream 비동기 메서드를 비동기 작업을 단순화 하기 위해 클래스에 포함 됩니다. An async method contains Async in its name, such as ReadAsync, WriteAsync, CopyToAsync, and FlushAsync. 이러한 메서드를 사용 하 여 주 스레드를 차단 하지 않고 리소스 집약적인 I/O 작업을 수행할 수 있습니다. 이 성능 고려 사항은 특히 중요 한 Windows 스토어 응용 프로그램 또는 데스크톱 는 시간이 많이 걸리는 스트림 작업 UI 스레드를 차단 하 고 작동 하지 않는 것 처럼 표시 하는 응용 프로그램을 만들 수 응용 프로그램. 비동기 메서드를 함께 사용 되는 asyncawait 키워드 Visual Basic 및 C#.

사용 하는 경우는 Windows 스토어 응용 프로그램 Stream 두 확장 메서드가 포함 되어 있습니다: AsInputStreamAsOutputStream. 이러한 메서드를 변환 된 Stream 개체를 스트림에 Windows 런타임. 또한 스트림에 변환할 수는 Windows 런타임 에 Stream 개체를 사용 하 여는 AsStreamForReadAsStreamForWrite 메서드.

일부 스트림을 구현하면 내부 데이터에 대한 로컬 버퍼링이 실행되어 성능이 향상됩니다. 사용 하 여 이러한 스트림에서 Flush 또는 FlushAsync 내부 버퍼를 지우고 모든 데이터를 쓴 것은 내부 데이터 소스 또는 리포지토리에 메서드.

삭제는 Stream 개체는 버퍼링 된 데이터를 플러시하고 기본적으로 호출 하 여 Flush 메서드를. 또한 Dispose는 내부 버퍼링에 사용되는 파일 핸들, 네트워크 연결 또는 메모리 같은 운영 체제 리소스를 해제합니다. BufferedStream 클래스는 읽기 및 쓰기 성능을 향상시키기 위해 버퍼링된 스트림으로 다른 스트림을 래핑하는 기능을 제공합니다.

백업 저장소 (비트 버킷)가 없는 스트림이 필요한 경우 사용 하는 Null 필드는이 용도로 디자인 된 stream의 인스턴스를 검색 합니다.

구현자 참고 사항

파생된 클래스를 구현할 때 Stream, 사용자에 대 한 구현을 제공 해야 하면 ReadWrite 메서드. 비동기 메서드 ReadAsync, WriteAsync, 및 CopyToAsync 동기 메서드를 사용 하 여 ReadWrite 해당 구현에서. 따라서 구현의 ReadWrite 비동기화 메서드에서 제대로 작동 합니다. ReadByte WriteByte를 구현하면 기본적으로 새로운 단일 요소의 바이트 배열을 만든 다음 동기 ReadWrite의 구현을 호출합니다. 파생 하는 경우 Stream, 성능 향상에 실질적으로 하나만 있는 경우를 내부 버퍼에 액세스 하도록 이러한 메서드를 재정의 하는 것이 좋습니다. 또한 CanRead, CanSeek, CanWrite, Flush, Length, Position, SeekSetLength를 구현해야 합니다.

재정의 하는 Close 메서드를 대신 입력 모두는 Stream 정리 논리는 Dispose 메서드. 자세한 내용은 Dispose 메서드 구현을 참조하십시오.

TopicLocation
방법: 파일에 텍스트 쓰기.NET Framework: Programming Fundamentals
방법: 파일의 텍스트 읽기.NET Framework: Programming Fundamentals
방법: 파일에 텍스트 쓰기.NET Framework: 프로그래밍 기본 사항
방법: 파일의 텍스트 읽기.NET Framework: 프로그래밍 기본 사항

다음 예제에서는 두 가지를 사용 하는 방법을 보여 줍니다. FileStream 개체를 비동기적으로 한 디렉터리에서 다른 디렉터리로 파일을 복사 합니다. FileStream 클래스는 Stream 클래스에서 파생됩니다. 여기서는 Click 에 대 한 이벤트 처리기는 Button 컨트롤에 표시 되는 async 한정자는 비동기 메서드를 호출 하기 때문에


using System;
using System.Threading.Tasks;
using System.Windows;
using System.IO;

namespace WpfApplication
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            string StartDirectory = @"c:\Users\exampleuser\start";
            string EndDirectory = @"c:\Users\exampleuser\end";

            foreach (string filename in Directory.EnumerateFiles(StartDirectory))
            {
                using (FileStream SourceStream = File.Open(filename, FileMode.Open))
                {
                    using (FileStream DestinationStream = File.Create(EndDirectory + filename.Substring(filename.LastIndexOf('\\'))))
                    {
                        await SourceStream.CopyToAsync(DestinationStream);
                    }
                }
            }
        }
    }
}


.NET Framework

4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

이식 가능한 클래스 라이브러리

이식 가능한 클래스 라이브러리에서 지원

Windows 스토어 앱용 .NET

Windows 8에서 지원

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework 에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 다음을 참조하십시오. .NET Framework 시스템 요구 사항.

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

커뮤니티 추가 항목

추가
표시:
© 2015 Microsoft