WindowsRuntimeStreamExtensions.AsStreamForWrite Metoda

Definicja

Przeciążenia

AsStreamForWrite(IOutputStream)

Konwertuje strumień wyjściowy w środowisko wykonawcze systemu Windows na zarządzany strumień na platformie .NET dla aplikacji ze sklepu Windows 8.x.

AsStreamForWrite(IOutputStream, Int32)

Konwertuje strumień wyjściowy w środowisko wykonawcze systemu Windows na strumień zarządzany na platformie .NET dla aplikacji ze Sklepu Windows przy użyciu określonego rozmiaru buforu.

AsStreamForWrite(IOutputStream)

Ważne

Ten interfejs API nie jest zgodny ze specyfikacją CLS.

Konwertuje strumień wyjściowy w środowisko wykonawcze systemu Windows na zarządzany strumień na platformie .NET dla aplikacji ze sklepu Windows 8.x.

C#
[System.CLSCompliant(false)]
public static System.IO.Stream AsStreamForWrite (this Windows.Storage.Streams.IOutputStream windowsRuntimeStream);

Parametry

windowsRuntimeStream
IOutputStream

Obiekt środowisko wykonawcze systemu Windows IOutputStream 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.

C#
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();
                }
            }
        }
    }
}

Oto kod XAML skojarzony z poprzednim przykładem.

XAML
<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 dla dowolnego obiektu 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#).

Podczas konwertowania strumienia jest używany domyślny rozmiar buforu 16 384 bajtów. Aby określić inny rozmiar buforu, użyj przeciążenia AsStreamForWrite(IOutputStream, Int32) .

Dotyczy

UWP 10.0
Produkt Wersje
UWP 10.0

AsStreamForWrite(IOutputStream, Int32)

Ważne

Ten interfejs API nie jest zgodny ze specyfikacją CLS.

Konwertuje strumień wyjściowy w środowisko wykonawcze systemu Windows na strumień zarządzany na platformie .NET dla aplikacji ze Sklepu Windows przy użyciu określonego rozmiaru buforu.

C#
[System.CLSCompliant(false)]
public static System.IO.Stream AsStreamForWrite (this Windows.Storage.Streams.IOutputStream windowsRuntimeStream, int bufferSize);

Parametry

windowsRuntimeStream
IOutputStream

Obiekt środowisko wykonawcze systemu Windows IOutputStream do konwersji.

bufferSize
Int32

Rozmiar buforu w bajtach. Ta wartość nie może być ujemna, ale może być równa 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 dla dowolnego obiektu 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 AsStreamForWrite(IOutputStream) przeciążenia.

W większości sytuacji buforowanie poprawia 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.

Dotyczy

UWP 10.0
Produkt Wersje
UWP 10.0