WindowsRuntimeStreamExtensions.AsStreamForRead 메서드

정의

오버로드

AsStreamForRead(IInputStream)

Windows 런타임의 입력 스트림을 Windows 스토어 앱용 .NET의 관리형 스트림으로 변환합니다.Converts an input stream in the Windows Runtime to a managed stream in the .NET for Windows Store apps.

AsStreamForRead(IInputStream, Int32)

지정된 버퍼 크기를 사용하여 Windows 런타임의 입력 스트림을 Windows 8.x 스토어 앱용 .NET의 관리형 스트림으로 변환합니다.Converts an input stream in the Windows Runtime to a managed stream in the .NET for Windows 8.x Store apps using the specified buffer size.

AsStreamForRead(IInputStream)

중요

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

Windows 런타임의 입력 스트림을 Windows 스토어 앱용 .NET의 관리형 스트림으로 변환합니다.Converts an input stream in the Windows Runtime to a managed stream in the .NET for Windows Store apps.

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);
static member AsStreamForRead : Windows.Storage.Streams.IInputStream -> System.IO.Stream
<Extension()>
Public Function AsStreamForRead (windowsRuntimeStream As IInputStream) As Stream

매개 변수

windowsRuntimeStream
IInputStream

변환할 Windows 런타임 IInputStream 개체입니다.The Windows Runtime IInputStream object to convert.

반환

변환된 스트림입니다.The converted stream.

특성

예외

windowsRuntimeStream이(가) null인 경우windowsRuntimeStream is null.

예제

다음 예제에서는 AsStreamForWriteAsStreamForRead 메서드를 사용 하 여 관리 되는 스트림을 Windows 런타임의 스트림으로 변환 하는 방법을 보여 줍니다.The following example shows how to use the AsStreamForWrite and AsStreamForRead methods to convert a managed stream to and from a stream in the Windows Runtime.

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 코드는 다음과 같습니다.Here's the XAML code that is associated with the previous example.

<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형식의 개체에서이 메서드를 인스턴스 메서드로 호출할 수 있습니다.In Visual Basic and C#, you can call this method as an instance method on any object of type Stream. 인스턴스 메서드 구문을 사용하여 이 메서드를 호출할 경우에는 첫 번째 매개 변수를 생략합니다.When you use instance method syntax to call this method, omit the first parameter. 자세한 내용은 확장 메서드 (Visual Basic) 또는 확장 메서드 (C# 프로그래밍 가이드)를 참조 하세요.For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).

스트림을 변환할 때 16384 바이트의 기본 버퍼 크기가 사용 됩니다.A default buffer size of 16,384 bytes is used when converting the stream. 다른 버퍼 크기를 지정 하려면 AsStreamForRead(IInputStream, Int32) 오버 로드를 사용 합니다.To specify a different buffer size, use the AsStreamForRead(IInputStream, Int32) overload.

AsStreamForRead(IInputStream, Int32)

중요

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

지정된 버퍼 크기를 사용하여 Windows 런타임의 입력 스트림을 Windows 8.x 스토어 앱용 .NET의 관리형 스트림으로 변환합니다.Converts an input stream in the Windows Runtime to a managed stream in the .NET for Windows 8.x Store apps using the specified buffer size.

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);
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 런타임 개체입니다.The Windows Runtime object to convert.

bufferSize
Int32

버퍼의 크기(바이트)입니다.The size, in bytes, of the buffer. 이 값은 음수일 수는 없지만 버퍼링을 사용하지 않도록 0일 수는 있습니다.This value cannot be negative, but it can be 0 (zero) to disable buffering.

반환

변환된 스트림입니다.The converted stream.

특성

예외

windowsRuntimeStream이(가) null인 경우windowsRuntimeStream is null.

bufferSize가 음수입니다.bufferSize is negative.

설명

참고

Visual Basic 및 C#에서는 Stream형식의 개체에서이 메서드를 인스턴스 메서드로 호출할 수 있습니다.In Visual Basic and C#, you can call this method as an instance method on any object of type Stream. 인스턴스 메서드 구문을 사용하여 이 메서드를 호출할 경우에는 첫 번째 매개 변수를 생략합니다.When you use instance method syntax to call this method, omit the first parameter. 자세한 내용은 확장 메서드 (Visual Basic) 또는 확장 메서드 (C# 프로그래밍 가이드)를 참조 하세요.For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).

스트림을 변환할 때이 메서드를 사용 하 여 버퍼 크기를 지정 합니다.You use this method to specify a buffer size when converting the stream. 16384 바이트의 기본 버퍼 크기를 사용 하려면 AsStreamForRead(IInputStream) 오버 로드를 사용 합니다.To use the default buffer size of 16,384 bytes, use the AsStreamForRead(IInputStream) overload.

대부분의 경우 버퍼링은 스트림 작업의 성능을 향상 시킵니다.In most situations, buffering improves the performance of stream operations. bufferSize를 0으로 설정 하 여 버퍼링을 사용 하지 않도록 설정할 수 있지만 버퍼링을 사용 하지 않도록 설정 하는 것이 상황에 적합 한 경우에만이 작업을 수행 해야 합니다.You can disable buffering by setting bufferSize to zero, but you should do this only when you are sure that disabling buffering is appropriate for your situation.

적용 대상