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 应用商店应用时, 这些扩展方法才可用。These extension methods are available only when you develop Windows Store apps. 方法提供了在 Windows 应用商店应用程序中使用流的便利方法。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.

类包含两种方法, 用于将托管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.

适用于