Freigeben über


WindowsRuntimeStreamExtensions.AsStreamForRead Methode

Definition

Überlädt

AsStreamForRead(IInputStream)

Konvertiert einen Eingabestream in der Windows-Runtime in einen verwalteten Stream in .NET für Microsoft Store-Apps.

AsStreamForRead(IInputStream, Int32)

Konvertiert einen Eingabestream in der Windows-Runtime mithilfe der angegebenen Puffergröße in einen verwalteten Stream in .NET für Store-Apps für Windows 8.x.

AsStreamForRead(IInputStream)

Wichtig

Diese API ist nicht CLS-kompatibel.

Konvertiert einen Eingabestream in der Windows-Runtime in einen verwalteten Stream in .NET für Microsoft 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);
[<System.CLSCompliant(false)>]
static member AsStreamForRead : Windows.Storage.Streams.IInputStream -> System.IO.Stream
<Extension()>
Public Function AsStreamForRead (windowsRuntimeStream As IInputStream) As Stream

Parameter

windowsRuntimeStream
IInputStream

Das Windows-Runtime-IInputStream-Objekt, das konvertiert werden soll.

Gibt zurück

Die konvertierte Stream.

Attribute

Ausnahmen

windowsRuntimeStream ist null.

Beispiele

Das folgende Beispiel zeigt, wie Sie die AsStreamForWrite Methoden und AsStreamForRead verwenden, um einen verwalteten Datenstrom in einen und aus einem Stream im Windows-Runtime zu konvertieren.

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

Hier sehen Sie den XAML-Code, der dem vorherigen Beispiel zugeordnet ist.

<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>

Hinweise

Hinweis

In Visual Basic und C# können Sie diese Methode als instance-Methode für jedes Objekt vom Typ Streamaufrufen. Bei Verwendung der Syntax für Instanzenmethoden lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter Erweiterungsmethoden (Visual Basic) oder Erweiterungsmethoden (C#-Programmierhandbuch).

Beim Konvertieren des Streams wird eine Standardpuffergröße von 16.384 Bytes verwendet. Verwenden Sie die AsStreamForRead(IInputStream, Int32) Überladung, um eine andere Puffergröße anzugeben.

Gilt für:

AsStreamForRead(IInputStream, Int32)

Wichtig

Diese API ist nicht CLS-kompatibel.

Konvertiert einen Eingabestream in der Windows-Runtime mithilfe der angegebenen Puffergröße in einen verwalteten Stream in .NET für Store-Apps für 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

Parameter

windowsRuntimeStream
IInputStream

Das Windows-Runtime-IInputStream-Objekt, das konvertiert werden soll.

bufferSize
Int32

Die Größe des Cookies in Bytes. Dieser Wert kann nicht negativ sein, aber er kann 0 (null) sein, um die Pufferung zu deaktivieren.

Gibt zurück

Die konvertierte Stream.

Attribute

Ausnahmen

windowsRuntimeStream ist null.

bufferSize ist ein negativer Wert.

Hinweise

Hinweis

In Visual Basic und C# können Sie diese Methode als instance-Methode für jedes Objekt vom Typ Streamaufrufen. Bei Verwendung der Syntax für Instanzenmethoden lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter Erweiterungsmethoden (Visual Basic) oder Erweiterungsmethoden (C#-Programmierhandbuch).

Sie verwenden diese Methode, um beim Konvertieren des Datenstroms eine Puffergröße anzugeben. Verwenden AsStreamForRead(IInputStream) Sie die Überladung, um die Standardpuffergröße von 16.384 Bytes zu verwenden.

In den meisten Situationen verbessert puffernde Vorgänge die Leistung von Streamvorgängen. Sie können die Pufferung deaktivieren, indem Sie auf 0 (null) festlegen bufferSize . Dies sollten Sie jedoch nur tun, wenn Sie sicher sind, dass die Deaktivierung der Pufferung für Ihre Situation geeignet ist.

Gilt für: