WindowsRuntimeStreamExtensions.AsStreamForRead Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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.