WindowsRuntimeStreamExtensions.AsStreamForRead Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
AsStreamForRead(IInputStream) |
Converte um fluxo de entrada no Windows Runtime em um fluxo gerenciado no .NET para Aplicativos da Windows Store. |
AsStreamForRead(IInputStream, Int32) |
Converte um fluxo de entrada no Windows Runtime em um fluxo gerenciado no .NET para aplicativos da Windows 8.x Store usando o tamanho do buffer especificado. |
AsStreamForRead(IInputStream)
Importante
Esta API não está em conformidade com CLS.
Converte um fluxo de entrada no Windows Runtime em um fluxo gerenciado no .NET para Aplicativos da Windows Store.
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
Parâmetros
- windowsRuntimeStream
- IInputStream
O objeto IInputStream do Windows Runtime a ser convertido.
Retornos
O fluxo convertido.
- Atributos
Exceções
windowsRuntimeStream
é null
.
Exemplos
O exemplo a seguir mostra como usar os AsStreamForWrite métodos e AsStreamForRead para converter um fluxo gerenciado de e para um fluxo no 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
Aqui está o código XAML associado ao exemplo anterior.
<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>
Comentários
Observação
No Visual Basic e no C#, você pode chamar esse método como um método de instância em qualquer objeto do tipo Stream. Quando você usar a sintaxe de método de instância para chamar esse método, omita o primeiro parâmetro. Para obter mais informações, consulte Métodos de extensão (Visual Basic) ou Métodos de Extensão (Guia de Programação em C#).
Um tamanho de buffer padrão de 16.384 bytes é usado ao converter o fluxo. Para especificar um tamanho de buffer diferente, use a AsStreamForRead(IInputStream, Int32) sobrecarga.
Aplica-se a
AsStreamForRead(IInputStream, Int32)
Importante
Esta API não está em conformidade com CLS.
Converte um fluxo de entrada no Windows Runtime em um fluxo gerenciado no .NET para aplicativos da Windows 8.x Store usando o tamanho do buffer especificado.
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
Parâmetros
- windowsRuntimeStream
- IInputStream
O objeto IInputStream do Windows Runtime a ser convertido.
- bufferSize
- Int32
O tamanho do buffer, em bytes. Este valor não pode ser negativo, mas pode ser 0 (zero) para desabilitar o buffering.
Retornos
O fluxo convertido.
- Atributos
Exceções
windowsRuntimeStream
é null
.
bufferSize
é negativo.
Comentários
Observação
No Visual Basic e no C#, você pode chamar esse método como um método de instância em qualquer objeto do tipo Stream. Quando você usar a sintaxe de método de instância para chamar esse método, omita o primeiro parâmetro. Para obter mais informações, consulte Métodos de extensão (Visual Basic) ou Métodos de Extensão (Guia de Programação em C#).
Você usa esse método para especificar um tamanho de buffer ao converter o fluxo. Para usar o tamanho padrão do buffer de 16.384 bytes, use a AsStreamForRead(IInputStream) sobrecarga.
Na maioria das situações, o buffer melhora o desempenho das operações de fluxo. Você pode desabilitar o buffer definindo bufferSize
como zero, mas deve fazer isso somente quando tiver certeza de que desabilitar o buffer é apropriado para sua situação.