WindowsRuntimeStreamExtensions.AsStreamForWrite Método

Definición

Sobrecargas

AsStreamForWrite(IOutputStream)

Convierte un flujo de salida de Windows Runtime en un flujo administrado de .NET para aplicaciones de Store de Windows 8.x.Converts an output stream in the Windows Runtime to a managed stream in the .NET for Windows 8.x Store apps.

AsStreamForWrite(IOutputStream, Int32)

Convierte un flujo de salida de Windows Runtime en un flujo administrado de .NET para aplicaciones de la Tienda Windows utilizando el tamaño de búfer especificado.Converts an output stream in the Windows Runtime to a managed stream in the .NET for Windows Store apps using the specified buffer size.

AsStreamForWrite(IOutputStream)

Importante

Esta API no es conforme a CLS.

Convierte un flujo de salida de Windows Runtime en un flujo administrado de .NET para aplicaciones de Store de Windows 8.x.Converts an output stream in the Windows Runtime to a managed stream in the .NET for Windows 8.x Store apps.

public:
[System::Runtime::CompilerServices::Extension]
 static System::IO::Stream ^ AsStreamForWrite(Windows::Storage::Streams::IOutputStream ^ windowsRuntimeStream);
[System.CLSCompliant(false)]
public static System.IO.Stream AsStreamForWrite (this Windows.Storage.Streams.IOutputStream windowsRuntimeStream);
static member AsStreamForWrite : Windows.Storage.Streams.IOutputStream -> System.IO.Stream
<Extension()>
Public Function AsStreamForWrite (windowsRuntimeStream As IOutputStream) As Stream

Parámetros

windowsRuntimeStream
IOutputStream

Objeto de Windows Runtime que se va a convertir.The Windows Runtime object to convert.

Devoluciones

Secuencia convertida.The converted stream.

Atributos

Excepciones

windowsRuntimeStream es null.windowsRuntimeStream is null.

Ejemplos

En el ejemplo siguiente se muestra cómo usar AsStreamForWrite los AsStreamForRead métodos y para convertir una secuencia administrada en y desde una secuencia en el Windows Runtime.The following example shows how to use the AsStreamForWrite and AsStreamForRead methods to convert a managed stream to and from a stream in the 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 que está asociado con el ejemplo anterior.Here's the XAML code that is associated with the previous example.

<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

Nota

En Visual Basic y C#, puede llamar a este método como un método de instancia en cualquier objeto de Streamtipo.In Visual Basic and C#, you can call this method as an instance method on any object of type Stream. Cuando emplee la sintaxis del método de instancia para llamar a este método, omita el primer parámetro.When you use instance method syntax to call this method, omit the first parameter. Para obtener más información, vea métodos de extensión (Visual Basic) o métodosC# de extensión (Guía de programación).For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).

Al convertir el flujo, se usa un tamaño de búfer predeterminado de 16.384 bytes.A default buffer size of 16,384 bytes is used when converting the stream. Para especificar un tamaño de búfer diferente, utilice AsStreamForWrite(IOutputStream, Int32) la sobrecarga.To specify a different buffer size, use the AsStreamForWrite(IOutputStream, Int32) overload.

AsStreamForWrite(IOutputStream, Int32)

Importante

Esta API no es conforme a CLS.

Convierte un flujo de salida de Windows Runtime en un flujo administrado de .NET para aplicaciones de la Tienda Windows utilizando el tamaño de búfer especificado.Converts an output stream in the Windows Runtime to a managed stream in the .NET for Windows Store apps using the specified buffer size.

public:
[System::Runtime::CompilerServices::Extension]
 static System::IO::Stream ^ AsStreamForWrite(Windows::Storage::Streams::IOutputStream ^ windowsRuntimeStream, int bufferSize);
[System.CLSCompliant(false)]
public static System.IO.Stream AsStreamForWrite (this Windows.Storage.Streams.IOutputStream windowsRuntimeStream, int bufferSize);
static member AsStreamForWrite : Windows.Storage.Streams.IOutputStream * int -> System.IO.Stream
<Extension()>
Public Function AsStreamForWrite (windowsRuntimeStream As IOutputStream, bufferSize As Integer) As Stream

Parámetros

windowsRuntimeStream
IOutputStream

Objeto IOutputStream de Windows Runtime que se va a convertir.The Windows Runtime IOutputStream object to convert.

bufferSize
Int32

Tamaño del búfer en bytes.The size, in bytes, of the buffer. Este valor no puede ser negativo, pero puede ser 0 (cero) para deshabilitar el almacenamiento en búfer.This value cannot be negative, but it can be 0 (zero) to disable buffering.

Devoluciones

Secuencia convertida.The converted stream.

Atributos

Excepciones

windowsRuntimeStream es null.windowsRuntimeStream is null.

bufferSize es negativo.bufferSize is negative.

Comentarios

Nota

En Visual Basic y C#, puede llamar a este método como un método de instancia en cualquier objeto de Streamtipo.In Visual Basic and C#, you can call this method as an instance method on any object of type Stream. Cuando emplee la sintaxis del método de instancia para llamar a este método, omita el primer parámetro.When you use instance method syntax to call this method, omit the first parameter. Para obtener más información, vea métodos de extensión (Visual Basic) o métodosC# de extensión (Guía de programación).For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).

Este método se usa para especificar un tamaño de búfer al convertir la secuencia.You use this method to specify a buffer size when converting the stream. Para usar el tamaño de búfer predeterminado de 16.384 bytes, utilice AsStreamForWrite(IOutputStream) la sobrecarga.To use the default buffer size of 16,384 bytes, use the AsStreamForWrite(IOutputStream) overload.

En la mayoría de los casos, el almacenamiento en búfer mejora el rendimiento de las operaciones de streaming.In most situations, buffering improves the performance of stream operations. Puede deshabilitar el almacenamiento bufferSize en búfer estableciendo en cero, pero debe hacerlo solo cuando esté seguro de que la deshabilitación del almacenamiento en búfer es adecuada para su situación.You can disable buffering by setting bufferSize to zero, but you should do this only when you are sure that disabling buffering is appropriate for your situation.

Se aplica a