WindowsRuntimeStreamExtensions.AsStreamForRead Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
AsStreamForRead(IInputStream) |
Konwertuje strumień wejściowy w środowisko wykonawcze systemu Windows na zarządzany strumień na platformie .NET dla aplikacji ze Sklepu Windows. |
AsStreamForRead(IInputStream, Int32) |
Konwertuje strumień wejściowy w środowisko wykonawcze systemu Windows na zarządzany strumień na platformie .NET dla aplikacji Windows 8.x Store przy użyciu określonego rozmiaru buforu. |
AsStreamForRead(IInputStream)
Ważne
Ten interfejs API nie jest zgodny ze specyfikacją CLS.
Konwertuje strumień wejściowy w środowisko wykonawcze systemu Windows na zarządzany strumień na platformie .NET dla aplikacji ze Sklepu Windows.
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
Parametry
- windowsRuntimeStream
- IInputStream
Obiekt środowisko wykonawcze systemu Windows IInputStream do konwersji.
Zwraca
Przekonwertowany strumień.
- Atrybuty
Wyjątki
windowsRuntimeStream
to null
.
Przykłady
W poniższym przykładzie pokazano, jak używać AsStreamForWrite metod i AsStreamForRead do konwertowania zarządzanego strumienia na i ze strumienia w środowisko wykonawcze systemu 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
Oto kod XAML skojarzony z poprzednim przykładem.
<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>
Uwagi
Uwaga
W języku Visual Basic i C#można wywołać tę metodę jako metodę wystąpienia w dowolnym obiekcie typu Stream. Gdy w celu wywołania tej metody jest używana składnia metody wystąpienia, należy pominąć pierwszy parametr. Aby uzyskać więcej informacji, zobacz Metody rozszerzeń (Visual Basic) lub Metody rozszerzeń (Przewodnik programowania w języku C#).
Domyślny rozmiar buforu 16 384 bajtów jest używany podczas konwertowania strumienia. Aby określić inny rozmiar buforu AsStreamForRead(IInputStream, Int32) , użyj przeciążenia.
Dotyczy
AsStreamForRead(IInputStream, Int32)
Ważne
Ten interfejs API nie jest zgodny ze specyfikacją CLS.
Konwertuje strumień wejściowy w środowisko wykonawcze systemu Windows na zarządzany strumień na platformie .NET dla aplikacji Windows 8.x Store przy użyciu określonego rozmiaru buforu.
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
Parametry
- windowsRuntimeStream
- IInputStream
Obiekt środowisko wykonawcze systemu Windows IInputStream do konwersji.
- bufferSize
- Int32
Rozmiar buforu w bajtach. Ta wartość nie może być ujemna, ale może to być wartość 0 (zero), aby wyłączyć buforowanie.
Zwraca
Przekonwertowany strumień.
- Atrybuty
Wyjątki
windowsRuntimeStream
to null
.
bufferSize
jest ujemna.
Uwagi
Uwaga
W języku Visual Basic i C#można wywołać tę metodę jako metodę wystąpienia w dowolnym obiekcie typu Stream. Gdy w celu wywołania tej metody jest używana składnia metody wystąpienia, należy pominąć pierwszy parametr. Aby uzyskać więcej informacji, zobacz Metody rozszerzeń (Visual Basic) lub Metody rozszerzeń (Przewodnik programowania w języku C#).
Ta metoda służy do określania rozmiaru buforu podczas konwertowania strumienia. Aby użyć domyślnego rozmiaru buforu 16 384 bajtów, użyj AsStreamForRead(IInputStream) przeciążenia.
W większości sytuacji buforowanie zwiększa wydajność operacji strumienia. Buforowanie można wyłączyć, ustawiając bufferSize
wartość zero, ale należy to zrobić tylko wtedy, gdy masz pewność, że wyłączenie buforowania jest odpowiednie dla Danej sytuacji.