WindowsRuntimeStreamExtensions.AsStreamForRead Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Overloads
| Name | Description |
|---|---|
| AsStreamForRead(IInputStream) |
Converteert een invoerstroom in de Windows Runtime naar een beheerde stream in de .NET voor Windows Store-apps. |
| AsStreamForRead(IInputStream, Int32) |
Converteert een invoerstroom in de Windows Runtime naar een beheerde stream in de .NET voor Windows 8.x Store-apps met behulp van de opgegeven buffergrootte. |
AsStreamForRead(IInputStream)
Belangrijk
Deze API is niet CLS-conform.
Converteert een invoerstroom in de Windows Runtime naar een beheerde stream in de .NET voor Windows Store-apps.
public:
[System::Runtime::CompilerServices::Extension]
static System::IO::Stream ^ AsStreamForRead(Windows::Storage::Streams::IInputStream ^ windowsRuntimeStream);
[System.CLSCompliant(false)]
public static System.IO.Stream AsStreamForRead(this Windows.Storage.Streams.IInputStream windowsRuntimeStream);
[<System.CLSCompliant(false)>]
static member AsStreamForRead : Windows.Storage.Streams.IInputStream -> System.IO.Stream
<Extension()>
Public Function AsStreamForRead (windowsRuntimeStream As IInputStream) As Stream
Parameters
- windowsRuntimeStream
- IInputStream
Het Windows Runtime IInputStream-object dat moet worden geconverteerd.
Retouren
De geconverteerde stream.
- Kenmerken
Uitzonderingen
windowsRuntimeStream is null.
Voorbeelden
In het volgende voorbeeld ziet u hoe u de methoden AsStreamForWrite en AsStreamForRead gebruikt om een beheerde stream te converteren naar en van een stream in de Windows Runtime.
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
Hier volgt de XAML-code die is gekoppeld aan het vorige voorbeeld.
<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>
Opmerkingen
Note
In Visual Basic en C# kunt u deze methode aanroepen als een instantiemethode voor elk object van het type Stream. Wanneer u de syntaxis van de instantiemethode gebruikt om deze methode aan te roepen, laat u de eerste parameter weg. Zie Extension Methods (Visual Basic) of Extension Methods (C# Programming Guide) voor meer informatie.
Bij het converteren van de stream wordt een standaardbuffergrootte van 16.384 bytes gebruikt. Als u een andere buffergrootte wilt opgeven, gebruikt u de AsStreamForRead(IInputStream, Int32) overbelasting.
Van toepassing op
AsStreamForRead(IInputStream, Int32)
Belangrijk
Deze API is niet CLS-conform.
Converteert een invoerstroom in de Windows Runtime naar een beheerde stream in de .NET voor Windows 8.x Store-apps met behulp van de opgegeven buffergrootte.
public:
[System::Runtime::CompilerServices::Extension]
static System::IO::Stream ^ AsStreamForRead(Windows::Storage::Streams::IInputStream ^ windowsRuntimeStream, int bufferSize);
[System.CLSCompliant(false)]
public static System.IO.Stream AsStreamForRead(this Windows.Storage.Streams.IInputStream windowsRuntimeStream, int bufferSize);
[<System.CLSCompliant(false)>]
static member AsStreamForRead : Windows.Storage.Streams.IInputStream * int -> System.IO.Stream
<Extension()>
Public Function AsStreamForRead (windowsRuntimeStream As IInputStream, bufferSize As Integer) As Stream
Parameters
- windowsRuntimeStream
- IInputStream
Het Windows Runtime IInputStream-object dat moet worden geconverteerd.
- bufferSize
- Int32
De grootte, in bytes, van de buffer. Deze waarde kan niet negatief zijn, maar kan 0 (nul) zijn om buffering uit te schakelen.
Retouren
De geconverteerde stream.
- Kenmerken
Uitzonderingen
windowsRuntimeStream is null.
bufferSize is negatief.
Opmerkingen
Note
In Visual Basic en C# kunt u deze methode aanroepen als een instantiemethode voor elk object van het type Stream. Wanneer u de syntaxis van de instantiemethode gebruikt om deze methode aan te roepen, laat u de eerste parameter weg. Zie Extension Methods (Visual Basic) of Extension Methods (C# Programming Guide) voor meer informatie.
U gebruikt deze methode om een buffergrootte op te geven bij het converteren van de stream. Als u de standaardbuffergrootte van 16.384 bytes wilt gebruiken, gebruikt u de AsStreamForRead(IInputStream) overbelasting.
In de meeste gevallen verbetert buffering de prestaties van stroombewerkingen. U kunt buffering uitschakelen door in te stellen bufferSize op nul, maar u moet dit alleen doen wanneer u zeker weet dat het uitschakelen van buffering geschikt is voor uw situatie.