本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

WindowsRuntimeStreamExtensions 类

.NET Framework (current version)

包含在 Windows 运行时 中的流和在 适用于 Windows 应用商店应用的 .NET 中托管的流之间转换的扩展方法。

System.Object
  System.IO.WindowsRuntimeStreamExtensions

命名空间:  System.IO
程序集:  System.Runtime.WindowsRuntime(在 System.Runtime.WindowsRuntime.dll 中)

public static class WindowsRuntimeStreamExtensions

WindowsRuntimeStreamExtensions 类型公开以下成员。

  名称描述
公共方法静态成员AsInputStream将 适用于 Windows 应用商店应用的 .NET 中一个托管的流转换为 Windows 运行时 中的输入流。
公共方法静态成员AsOutputStream将 适用于 Windows 应用商店应用的 .NET 中一个托管的流转换为 Windows 运行时 中的输出流。
公共方法静态成员AsRandomAccessStream将指定的流转换为随机访问的流。
公共方法静态成员AsStream(IRandomAccessStream)将 Windows 运行时 中一个随机访问流转换为 适用于 Windows 应用商店应用的 .NET 中的托管流。
公共方法静态成员AsStream(IRandomAccessStream, Int32)使用指定的缓冲区大小,将 Windows 运行时 中的一个随机访问流转换为 适用于 Windows 应用商店应用的 .NET 中的托管流。
公共方法静态成员AsStreamForRead(IInputStream)将 Windows 运行时 中的输入流转换为 适用于 Windows 应用商店应用的 .NET 中的托管流。
公共方法静态成员AsStreamForRead(IInputStream, Int32)使用指定的缓冲区大小,将 Windows 运行时 中的输入流转换为 适用于 Windows 应用商店应用的 .NET 中的托管流。
公共方法静态成员AsStreamForWrite(IOutputStream)将 Windows 运行时 中输出流转换为 适用于 Windows 应用商店应用的 .NET 中的托管流。
公共方法静态成员AsStreamForWrite(IOutputStream, Int32)使用指定的缓冲区大小,将 Windows 运行时 中的输出流转换为 适用于 Windows 应用商店应用的 .NET 中的托管流。
页首

These extension methods are available only when you develop Windows 应用商店 apps. The methods provide convenient ways of working with streams in Windows 应用商店 apps. 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.

The WindowsRuntimeStreamExtensions class contains two methods for converting a managed Stream object to a stream in the Windows 运行时:

The WindowsRuntimeStreamExtensions class contains three overloaded methods for converting a stream in the Windows 运行时 to a Stream object:

Starting with the .NET Framework 4.5.1, the WindowsRuntimeStreamExtensions class contains a method for converting a stream to a Windows 运行时 RandomAccessStream:

The following example shows how to use the AsStreamForWrite and AsStreamForRead methods to convert a managed stream to and from a stream in the Windows 运行时.


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


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>


.NET Framework

受以下版本支持:4.6、4.5

适用于 Windows Phone 应用的 .NET

受以下版本支持:Windows Phone Silverlight 8

适用于 Windows 应用商店应用的 .NET

受以下版本支持:

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012

.NET Framework 并非支持每个平台的所有版本。有关支持的版本的列表,请参阅 .NET Framework 系统要求

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

社区附加资源

显示: