WindowsRuntimeStreamExtensions.AsStreamForRead 方法

定義

多載

AsStreamForRead(IInputStream)

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

AsStreamForRead(IInputStream, Int32)

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

AsStreamForRead(IInputStream)

重要

此 API 不符合 CLS 規範。

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

C#
[System.CLSCompliant(false)]
public static System.IO.Stream AsStreamForRead (this Windows.Storage.Streams.IInputStream windowsRuntimeStream);

參數

windowsRuntimeStream
IInputStream

要轉換的 Windows 執行階段 IInputStream 物件。

傳回

轉換的資料流。

屬性

例外狀況

windowsRuntimeStreamnull

範例

下列範例示範如何使用 AsStreamForWriteAsStreamForRead 方法,將 Managed 數據流轉換成 Windows 執行階段 中的數據流。

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

以下是與上一個範例相關聯的 XAML 程式代碼。

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>

備註

注意

在 Visual Basic 和 C# 中,您可以在類型 Stream的任何物件上呼叫這個方法作為實例方法。 使用執行個體方法語法呼叫這個方法時,請省略第一個參數。 如需詳細資訊,請參閱 Visual Basic) (擴充方法 C# 程式設計手冊 (的擴充方法)

轉換數據流時,會使用默認緩衝區大小 16,384 個字節。 若要指定不同的緩衝區大小,請使用 AsStreamForRead(IInputStream, Int32) 多載。

適用於

UWP 10.0
產品 版本
UWP 10.0

AsStreamForRead(IInputStream, Int32)

重要

此 API 不符合 CLS 規範。

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

C#
[System.CLSCompliant(false)]
public static System.IO.Stream AsStreamForRead (this Windows.Storage.Streams.IInputStream windowsRuntimeStream, int bufferSize);

參數

windowsRuntimeStream
IInputStream

要轉換的 Windows 執行階段 IInputStream 物件。

bufferSize
Int32

緩衝區的大小 (以位元組為單位)。 這個值不可以是負數,但可以是 0 (零),以停用緩衝處理。

傳回

轉換的資料流。

屬性

例外狀況

windowsRuntimeStreamnull

bufferSize 為負。

備註

注意

在 Visual Basic 和 C# 中,您可以在類型 Stream的任何物件上呼叫這個方法作為實例方法。 使用執行個體方法語法呼叫這個方法時,請省略第一個參數。 如需詳細資訊,請參閱 Visual Basic) (擴充方法 C# 程式設計手冊 (的擴充方法)

在轉換數據流時,您可以使用這個方法來指定緩衝區大小。 若要使用默認緩衝區大小 16,384 個字節,請使用 多 AsStreamForRead(IInputStream) 載。

在大部分情況下,緩衝可改善數據流作業的效能。 您可以藉由將 設定 bufferSize 為零來停用緩衝,但只有在確定停用緩衝適用於您的情況時,才應該這麼做。

適用於

UWP 10.0
產品 版本
UWP 10.0