WindowsRuntimeStreamExtensions.AsStreamForRead Método

Definición

Sobrecargas

Nombre Description
AsStreamForRead(IInputStream)

Convierte un flujo de entrada en el Windows Runtime en una secuencia administrada en el .NET para las aplicaciones de Windows Store.

AsStreamForRead(IInputStream, Int32)

Convierte un flujo de entrada en el Windows Runtime en una secuencia administrada en el .NET para las aplicaciones de la Tienda Windows 8.x mediante el tamaño de búfer especificado.

AsStreamForRead(IInputStream)

Importante

Esta API no es conforme a CLS.

Convierte un flujo de entrada en el Windows Runtime en una secuencia administrada en el .NET para las aplicaciones de 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
Windows.Storage.Streams.IInputStream

Objeto Windows Runtime Windows.Storage.Streams.IInputStream que se va a convertir.

Devoluciones

Secuencia convertida.

Atributos

Excepciones

windowsRuntimeStream es null.

Ejemplos

En el ejemplo siguiente se muestra cómo usar los métodos /> / para convertir una secuencia administrada en y desde una secuencia del 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

Este es el código XAML asociado al ejemplo 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>

Comentarios

Note

En Visual Basic y C#, puede llamar a este método como método de instancia en cualquier objeto de tipo Stream. Cuando use la sintaxis del método de instancia para llamar a este método, omita el primer parámetro. Para obtener más información, vea Extension Methods (Visual Basic) o Extension Methods (C#Programming Guide).

Se usa un tamaño de búfer predeterminado de 16 384 bytes al convertir la secuencia. Para especificar un tamaño de búfer diferente, use la AsStreamForRead(IInputStream, Int32) sobrecarga.

Se aplica a

AsStreamForRead(IInputStream, Int32)

Importante

Esta API no es conforme a CLS.

Convierte un flujo de entrada en el Windows Runtime en una secuencia administrada en el .NET para las aplicaciones de la Tienda Windows 8.x mediante el tamaño de búfer 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
Windows.Storage.Streams.IInputStream

Objeto Windows Runtime Windows.Storage.Streams.IInputStream que se va a convertir.

bufferSize
Int32

Tamaño, en bytes, del búfer. Este valor no puede ser negativo, pero puede ser 0 (cero) para deshabilitar el almacenamiento en búfer.

Devoluciones

Secuencia convertida.

Atributos

Excepciones

windowsRuntimeStream es null.

bufferSize es negativo.

Comentarios

Note

En Visual Basic y C#, puede llamar a este método como método de instancia en cualquier objeto de tipo Stream. Cuando use la sintaxis del método de instancia para llamar a este método, omita el primer parámetro. Para obtener más información, vea Extension Methods (Visual Basic) o Extension Methods (C#Programming Guide).

Este método se usa para especificar un tamaño de búfer al convertir la secuencia. Para usar el tamaño de búfer predeterminado de 16 384 bytes, use la AsStreamForRead(IInputStream) sobrecarga.

En la mayoría de las situaciones, el almacenamiento en búfer mejora el rendimiento de las operaciones de flujo. Puede deshabilitar el almacenamiento en búfer estableciendo bufferSize en cero, pero solo debe hacerlo cuando esté seguro de que deshabilitar el almacenamiento en búfer es adecuado para su situación.

Se aplica a