WindowsRuntimeStreamExtensions 類別

定義

包含用於在 Windows 執行階段中之資料流與適用於 Windows 市集應用程式的 .NET 中之受控資料流之間轉換的擴充方法。

public ref class WindowsRuntimeStreamExtensions abstract sealed
public static class WindowsRuntimeStreamExtensions
[System.Security.SecurityCritical]
public static class WindowsRuntimeStreamExtensions
type WindowsRuntimeStreamExtensions = class
[<System.Security.SecurityCritical>]
type WindowsRuntimeStreamExtensions = class
Public Module WindowsRuntimeStreamExtensions
繼承
WindowsRuntimeStreamExtensions
屬性

範例

下列範例示範如何使用 AsStreamForWriteAsStreamForRead

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

以下是與上一個範例相關聯的 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>

備註

只有在您開發 Windows 市集應用程式時,才能使用這些擴充方法。 方法提供在 Windows 市集應用程式中使用資料流程的便利方式。 您不會建立 類別的 WindowsRuntimeStreamExtensions 實例,而是從 和 IOutputStream 介面和 Stream 類別的實例 IInputStream 使用這些方法。

類別 WindowsRuntimeStreamExtensions 包含兩種方法,可將 Managed Stream 物件轉換成Windows 執行階段中的資料流程:

類別 WindowsRuntimeStreamExtensions 包含三種多載方法,可將Windows 執行階段 Stream 中的資料流程轉換成 物件:

從 .NET Framework 4.5.1 開始,類別 WindowsRuntimeStreamExtensions 包含將資料流程轉換成 Windows 執行階段 RandomAccessStream 的方法:

方法

AsInputStream(Stream)

將適用於 Windows 市集應用程式的 .NET 中的受控資料流轉換成 Windows 執行階段中的輸入資料流。

AsOutputStream(Stream)

將適用於 Windows 市集應用程式的 .NET 中的受控資料流轉換成 Windows 執行階段中的輸出資料流。

AsRandomAccessStream(Stream)

將指定的資料流轉換為隨機存取資料流。

AsStream(IRandomAccessStream)

將 Windows 執行階段中的隨機存取資料流轉換成適用於 Windows 市集應用程式的 .NET 中的受控資料流。

AsStream(IRandomAccessStream, Int32)

使用指定的緩衝區大小將 Windows 執行階段中的隨機存取資料流轉換成適用於 Windows 市集應用程式的 .NET 中的受控資料流。

AsStreamForRead(IInputStream)

將 Windows 執行階段中的輸入資料流轉換成適用於 Windows 市集應用程式的 .NET 中的受控資料流。

AsStreamForRead(IInputStream, Int32)

使用指定的緩衝區大小將 Windows 執行階段中的輸入資料流轉換成適用於 Windows 8.x 市集應用程式的 .NET 中的受控資料流。

AsStreamForWrite(IOutputStream)

將 Windows 執行階段中的輸出資料流轉換成適用於 Windows 8.x 市集應用程式的 .NET 中的受控資料流。

AsStreamForWrite(IOutputStream, Int32)

使用指定的緩衝區大小將 Windows 執行階段中的輸出資料流轉換成適用於 Windows 市集應用程式的 .NET 中的受控資料流。

適用於