次の方法で共有


WindowsRuntimeStreamExtensions.AsStreamForRead メソッド

定義

オーバーロード

AsStreamForRead(IInputStream)

Windows ランタイムの入力ストリームを、Windows ストア アプリ用 .NET のマネージド ストリームに変換します。

AsStreamForRead(IInputStream, Int32)

指定したバッファー サイズを使用して、Windows ランタイムの入力ストリームを .NET for Windows 8.x ストア アプリのマネージド ストリームに変換します。

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 オブジェクト。

戻り値

変換されたストリーム。

属性

例外

windowsRuntimeStreamnullです。

次の例は、AsStreamForWrite メソッドと AsStreamForRead メソッドを使用して、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型の任意のオブジェクトに対してインスタンス メソッドとしてこのメソッドを呼び出すことができます。 インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。 詳細については、「拡張メソッド (Visual Basic) または拡張メソッドの (C# プログラミング ガイド)を参照してください。

ストリームの変換時には、既定のバッファー サイズ 16,384 バイトが使用されます。 別のバッファー サイズを指定するには、AsStreamForRead(IInputStream, Int32) オーバーロードを使用します。

適用対象

AsStreamForRead(IInputStream, Int32)

重要

この API は CLS 準拠ではありません。

指定したバッファー サイズを使用して、Windows ランタイムの入力ストリームを .NET for Windows 8.x ストア アプリのマネージド ストリームに変換します。

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型の任意のオブジェクトに対してインスタンス メソッドとしてこのメソッドを呼び出すことができます。 インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。 詳細については、「拡張メソッド (Visual Basic) または拡張メソッドの (C# プログラミング ガイド)を参照してください。

ストリームを変換するときにバッファー サイズを指定するには、このメソッドを使用します。 16,384 バイトの既定のバッファー サイズを使用するには、AsStreamForRead(IInputStream) オーバーロードを使用します。

ほとんどの場合、バッファリングによってストリーム操作のパフォーマンスが向上します。 バッファリングを無効にするには、bufferSize を 0 に設定しますが、これは、バッファリングを無効にすることが状況に適している場合にのみ行う必要があります。

適用対象