다음을 통해 공유


WindowsRuntimeStreamExtensions.AsStreamForRead 메서드

정의

오버로드

AsStreamForRead(IInputStream)

Windows 런타임의 입력 스트림을 Windows 스토어 앱용 .NET의 관리형 스트림으로 변환합니다.

AsStreamForRead(IInputStream, Int32)

지정된 버퍼 크기를 사용하여 Windows 런타임의 입력 스트림을 Windows 8.x 스토어 앱용 .NET의 관리형 스트림으로 변환합니다.

AsStreamForRead(IInputStream)

중요

이 API는 CLS 규격이 아닙니다.

Windows 런타임의 입력 스트림을 Windows 스토어 앱용 .NET의 관리형 스트림으로 변환합니다.

public:
[System::Runtime::CompilerServices::Extension]
 static System::IO::Stream ^ AsStreamForRead(Windows::Storage::Streams::IInputStream ^ windowsRuntimeStream);
[System.CLSCompliant(false)]
public static System.IO.Stream AsStreamForRead (this Windows.Storage.Streams.IInputStream windowsRuntimeStream);
[<System.CLSCompliant(false)>]
static member AsStreamForRead : Windows.Storage.Streams.IInputStream -> System.IO.Stream
<Extension()>
Public Function AsStreamForRead (windowsRuntimeStream As IInputStream) As Stream

매개 변수

windowsRuntimeStream
IInputStream

변환할 Windows 런타임 IInputStream 개체입니다.

반환

변환된 스트림입니다.

특성

예외

windowsRuntimeStream이(가) null인 경우

예제

다음 예에서는 및 AsStreamForRead 메서드를 AsStreamForWrite 사용하여 관리되는 스트림을 Windows 런타임 스트림과 변환하는 방법을 보여 줍니다.

using System;
using System.IO;
using Windows.Storage;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;

namespace ExampleApplication
{
    public sealed partial class BlankPage : Page
    {
        public BlankPage()
        {
            this.InitializeComponent();
        }

        private async void CreateButton_Click(object sender, RoutedEventArgs e)
        {
            StorageFile newFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("testfile.txt");
            var streamNewFile = await newFile.OpenAsync(FileAccessMode.ReadWrite);

            using (var outputNewFile = streamNewFile.GetOutputStreamAt(0))
            {
                using (StreamWriter writer = new StreamWriter(outputNewFile.AsStreamForWrite()))
                {
                    await writer.WriteLineAsync("content for new file");
                    await writer.WriteLineAsync(UserText.Text);
                }
            }
        }

        private async void VerifyButton_Click(object sender, RoutedEventArgs e)
        {
            StorageFile openedFile = await ApplicationData.Current.LocalFolder.GetFileAsync("testfile.txt");
            var streamOpenedFile = await openedFile.OpenAsync(FileAccessMode.Read);

            using (var inputOpenedFile = streamOpenedFile.GetInputStreamAt(0))
            {
                using (StreamReader reader = new StreamReader(inputOpenedFile.AsStreamForRead()))
                {
                    Results.Text = await reader.ReadToEndAsync();
                }
            }
        }
    }
}
Imports System.IO
Imports Windows.Storage

NotInheritable Public Class BlankPage
    Inherits Page

    Private Async Sub CreateButton_Click(sender As Object, e As RoutedEventArgs)
        Dim newFile As StorageFile = Await ApplicationData.Current.LocalFolder.CreateFileAsync("testfile.txt")
        Dim streamNewFile = Await newFile.OpenAsync(FileAccessMode.ReadWrite)

        Using outputNewFile = streamNewFile.GetOutputStreamAt(0)
            Using writer As StreamWriter = New StreamWriter(outputNewFile.AsStreamForWrite())
                Await writer.WriteLineAsync("content for new file")
                Await writer.WriteLineAsync(UserText.Text)
            End Using
        End Using
    End Sub

    Private Async Sub VerifyButton_Click(sender As Object, e As RoutedEventArgs)
        Dim openedFile As StorageFile = Await ApplicationData.Current.LocalFolder.GetFileAsync("testfile.txt")
        Dim streamOpenedFile = Await openedFile.OpenAsync(FileAccessMode.Read)

        Using inputOpenedFile = streamOpenedFile.GetInputStreamAt(0)

            Using reader As StreamReader = New StreamReader(inputOpenedFile.AsStreamForRead())
                Results.Text = Await reader.ReadToEndAsync()
            End Using
        End Using
    End Sub
End Class

다음은 이전 예제와 연결된 XAML 코드입니다.

<Page
    x:Class="ExampleApplication.BlankPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ExampleApplication"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <StackPanel Background="{StaticResource ApplicationPageBackgroundBrush}" VerticalAlignment="Center" HorizontalAlignment="Center">
        <TextBlock Text="Provide text to write to file:"></TextBlock>
        <TextBox Name="UserText" Width="400"></TextBox>
        <Button Name="CreateButton" Content="Create File" Click="CreateButton_Click"></Button>
        <Button Name="VerifyButton" Content="Verify Contents" Click="VerifyButton_Click"></Button>
        <TextBlock Name="Results"></TextBlock>
    </StackPanel>
</Page>

설명

참고

Visual Basic 및 C#에서는 형식Stream의 모든 개체에서 이 메서드를 instance 메서드로 호출할 수 있습니다. 인스턴스 메서드 구문을 사용하여 이 메서드를 호출할 경우에는 첫 번째 매개 변수를 생략합니다. 자세한 내용은 확장 메서드(Visual Basic) 또는 확장 메서드(C# 프로그래밍 가이드)를 참조하세요.

스트림을 변환할 때 기본 버퍼 크기는 16,384바이트입니다. 다른 버퍼 크기를 지정하려면 오버로드를 AsStreamForRead(IInputStream, Int32) 사용합니다.

적용 대상

AsStreamForRead(IInputStream, Int32)

중요

이 API는 CLS 규격이 아닙니다.

지정된 버퍼 크기를 사용하여 Windows 런타임의 입력 스트림을 Windows 8.x 스토어 앱용 .NET의 관리형 스트림으로 변환합니다.

public:
[System::Runtime::CompilerServices::Extension]
 static System::IO::Stream ^ AsStreamForRead(Windows::Storage::Streams::IInputStream ^ windowsRuntimeStream, int bufferSize);
[System.CLSCompliant(false)]
public static System.IO.Stream AsStreamForRead (this Windows.Storage.Streams.IInputStream windowsRuntimeStream, int bufferSize);
[<System.CLSCompliant(false)>]
static member AsStreamForRead : Windows.Storage.Streams.IInputStream * int -> System.IO.Stream
<Extension()>
Public Function AsStreamForRead (windowsRuntimeStream As IInputStream, bufferSize As Integer) As Stream

매개 변수

windowsRuntimeStream
IInputStream

변환할 Windows 런타임 IInputStream 개체입니다.

bufferSize
Int32

버퍼의 크기(바이트)입니다. 이 값은 음수일 수는 없지만 버퍼링을 사용하지 않도록 0일 수는 있습니다.

반환

변환된 스트림입니다.

특성

예외

windowsRuntimeStreamnull입니다.

bufferSize가 음수입니다.

설명

참고

Visual Basic 및 C#에서는 형식Stream의 모든 개체에서 이 메서드를 instance 메서드로 호출할 수 있습니다. 인스턴스 메서드 구문을 사용하여 이 메서드를 호출할 경우에는 첫 번째 매개 변수를 생략합니다. 자세한 내용은 확장 메서드(Visual Basic) 또는 확장 메서드(C# 프로그래밍 가이드)를 참조하세요.

이 메서드를 사용하여 스트림을 변환할 때 버퍼 크기를 지정합니다. 기본 버퍼 크기인 16,384바이트를 사용하려면 오버로드를 AsStreamForRead(IInputStream) 사용합니다.

대부분의 경우 버퍼링은 스트림 작업의 성능을 향상시킵니다. 버퍼링을 0으로 설정 bufferSize 하여 사용하지 않도록 설정할 수 있지만 버퍼링을 사용하지 않도록 설정하는 것이 상황에 적합한 경우에만 이 작업을 수행해야 합니다.

적용 대상