WindowsRuntimeStreamExtensions 類別

定義

包含用於在 Windows 執行階段中之資料流與適用於 Windows 市集應用程式的 .NET 中之受控資料流之間轉換的擴充方法。Contains extension methods for converting between streams in the Windows Runtime and managed streams in the .NET for Windows Store apps.

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

範例

下列範例顯示如何使用AsStreamForWriteAsStreamForReadThe following example shows how to use the AsStreamForWrite and AsStreamForRead

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 程式碼。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>

備註

只有當您開發 Windows Store 應用程式時, 才可以使用這些擴充方法。These extension methods are available only when you develop Windows Store apps. 這些方法提供便利的方式來處理 Windows Store 應用程式中的資料流程。The methods provide convenient ways of working with streams in Windows Store apps. 您不會WindowsRuntimeStreamExtensions建立類別的實例, 而是從IInputStreamIOutputStream介面的實例和Stream類別使用這些方法。You do not create an instance of the WindowsRuntimeStreamExtensions class; instead, you use these methods from instances of the IInputStream and IOutputStream interfaces and the Stream class.

類別包含兩個方法, 可將 managed Stream物件轉換為 Windows 執行階段中的資料流程: WindowsRuntimeStreamExtensionsThe WindowsRuntimeStreamExtensions class contains two methods for converting a managed Stream object to a stream in the Windows Runtime:

類別包含三個將 Windows 執行階段中的資料流程轉換Stream成物件的多載方法: WindowsRuntimeStreamExtensionsThe WindowsRuntimeStreamExtensions class contains three overloaded methods for converting a stream in the Windows Runtime to a Stream object:

從 .NET Framework 4.5.1 開始, WindowsRuntimeStreamExtensions類別包含將資料流程轉換成 Windows 執行階段RandomAccessStream的方法:Starting with the .NET Framework 4.5.1, the WindowsRuntimeStreamExtensions class contains a method for converting a stream to a Windows Runtime RandomAccessStream:

方法

AsInputStream(Stream)

將適用於 Windows 市集應用程式的 .NET 中的受控資料流轉換成 Windows 執行階段中的輸入資料流。Converts a managed stream in the .NET for Windows Store apps to an input stream in the Windows Runtime.

AsOutputStream(Stream)

將適用於 Windows 市集應用程式的 .NET 中的受控資料流轉換成 Windows 執行階段中的輸出資料流。Converts a managed stream in the .NET for Windows Store apps to an output stream in the Windows Runtime.

AsRandomAccessStream(Stream)

將指定的資料流轉換為隨機存取資料流。Converts the specified stream to a random access stream.

AsStream(IRandomAccessStream)

將 Windows 執行階段中的隨機存取資料流轉換成適用於 Windows 市集應用程式的 .NET 中的受控資料流。Converts a random access stream in the Windows Runtime to a managed stream in the .NET for Windows Store apps.

AsStream(IRandomAccessStream, Int32)

使用指定的緩衝區大小將 Windows 執行階段中的隨機存取資料流轉換成適用於 Windows 市集應用程式的 .NET 中的受控資料流。Converts a random access stream in the Windows Runtime to a managed stream in the .NET for Windows Store apps using the specified buffer size.

AsStreamForRead(IInputStream)

將 Windows 執行階段中的輸入資料流轉換成適用於 Windows 市集應用程式的 .NET 中的受控資料流。Converts an input stream in the Windows Runtime to a managed stream in the .NET for Windows Store apps.

AsStreamForRead(IInputStream, Int32)

使用指定的緩衝區大小將 Windows 執行階段中的輸入資料流轉換成適用於 Windows 8.x 市集應用程式的 .NET 中的受控資料流。Converts an input stream in the Windows Runtime to a managed stream in the .NET for Windows 8.x Store apps using the specified buffer size.

AsStreamForWrite(IOutputStream)

將 Windows 執行階段中的輸出資料流轉換成適用於 Windows 8.x 市集應用程式的 .NET 中的受控資料流。Converts an output stream in the Windows Runtime to a managed stream in the .NET for Windows 8.x Store apps.

AsStreamForWrite(IOutputStream, Int32)

使用指定的緩衝區大小將 Windows 執行階段中的輸出資料流轉換成適用於 Windows 市集應用程式的 .NET 中的受控資料流。Converts an output stream in the Windows Runtime to a managed stream in the .NET for Windows Store apps using the specified buffer size.

適用於