WindowsRuntimeStreamExtensions.AsStreamForWrite Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
AsStreamForWrite(IOutputStream) |
Převede výstupní datový proud v prostředí Windows Runtime na spravovaný datový proud v .NET pro aplikace Windows 8.x Store. |
AsStreamForWrite(IOutputStream, Int32) |
Převede výstupní datový proud v prostředí Windows Runtime na spravovaný datový proud v .NET pro aplikace pro Windows Store pomocí zadané velikosti vyrovnávací paměti. |
AsStreamForWrite(IOutputStream)
Důležité
Toto rozhraní API neodpovídá specifikaci CLS.
Převede výstupní datový proud v prostředí Windows Runtime na spravovaný datový proud v .NET pro aplikace Windows 8.x Store.
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);
[<System.CLSCompliant(false)>]
static member AsStreamForWrite : Windows.Storage.Streams.IOutputStream -> System.IO.Stream
<Extension()>
Public Function AsStreamForWrite (windowsRuntimeStream As IOutputStream) As Stream
Parametry
- windowsRuntimeStream
- IOutputStream
Objekt prostředí Windows RuntimeIOutputStream, který chcete převést.
Návraty
Převedený datový proud.
- Atributy
Výjimky
windowsRuntimeStream
je null
.
Příklady
Následující příklad ukazuje, jak pomocí AsStreamForWrite metod a AsStreamForRead převést spravovaný datový proud na datový proud a z datového proudu v prostředí 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
Tady je kód XAML, který je přidružený k předchozímu příkladu.
<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>
Poznámky
Poznámka
V jazyce Visual Basic a C# můžete tuto metodu volat jako metodu instance pro libovolný objekt typu Stream. Pokud k volání této metody použijete syntaxi metody instance, vynechejte první parametr. Další informace najdete v tématu Rozšiřující metody (Visual Basic) nebo Rozšiřující metody (Průvodce programováním v C#).
Při převodu datového proudu se používá výchozí velikost vyrovnávací paměti 16 384 bajtů. Pokud chcete zadat jinou velikost vyrovnávací paměti, použijte AsStreamForWrite(IOutputStream, Int32) přetížení.
Platí pro
AsStreamForWrite(IOutputStream, Int32)
Důležité
Toto rozhraní API neodpovídá specifikaci CLS.
Převede výstupní datový proud v prostředí Windows Runtime na spravovaný datový proud v .NET pro aplikace pro Windows Store pomocí zadané velikosti vyrovnávací paměti.
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);
[<System.CLSCompliant(false)>]
static member AsStreamForWrite : Windows.Storage.Streams.IOutputStream * int -> System.IO.Stream
<Extension()>
Public Function AsStreamForWrite (windowsRuntimeStream As IOutputStream, bufferSize As Integer) As Stream
Parametry
- windowsRuntimeStream
- IOutputStream
Objekt prostředí Windows RuntimeIOutputStream, který chcete převést.
- bufferSize
- Int32
Velikost vyrovnávací paměti v bajtech. Tato hodnota nemůže být záporná, ale pokud chcete zakázat ukládání do vyrovnávací paměti, může to být 0 (nula).
Návraty
Převedený datový proud.
- Atributy
Výjimky
windowsRuntimeStream
je null
.
bufferSize
je negativní.
Poznámky
Poznámka
V jazyce Visual Basic a C# můžete tuto metodu volat jako metodu instance pro libovolný objekt typu Stream. Pokud k volání této metody použijete syntaxi metody instance, vynechejte první parametr. Další informace najdete v tématu Rozšiřující metody (Visual Basic) nebo Rozšiřující metody (Průvodce programováním v C#).
Tuto metodu použijete k určení velikosti vyrovnávací paměti při převodu datového proudu. Pokud chcete použít výchozí velikost vyrovnávací paměti 16 384 bajtů, použijte AsStreamForWrite(IOutputStream) přetížení.
Ve většině situací ukládání do vyrovnávací paměti zlepšuje výkon operací datových proudů. Ukládání do vyrovnávací paměti můžete zakázat nastavením bufferSize
na nulu, ale měli byste to udělat jenom v případě, že jste si jistí, že je zákaz ukládání do vyrovnávací paměti vhodný pro vaši situaci.