WindowsRuntimeStreamExtensions.AsStreamForWrite メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
AsStreamForWrite(IOutputStream) |
Windows ランタイムの出力ストリームを Windows 8.x ストア アプリ用 .NET のマネージド ストリームに変換します。 |
AsStreamForWrite(IOutputStream, Int32) |
指定のバッファー サイズを利用し、Windows ランタイムの出力ストリームを Windows ストア アプリ用 .NET のマネージド ストリームに変換します。 |
AsStreamForWrite(IOutputStream)
重要
この API は CLS 準拠ではありません。
Windows ランタイムの出力ストリームを Windows 8.x ストア アプリ用 .NET のマネージド ストリームに変換します。
public:
[System::Runtime::CompilerServices::Extension]
static System::IO::Stream ^ AsStreamForWrite(Windows::Storage::Streams::IOutputStream ^ windowsRuntimeStream);
[System.CLSCompliant(false)]
public static System.IO.Stream AsStreamForWrite (this Windows.Storage.Streams.IOutputStream windowsRuntimeStream);
[<System.CLSCompliant(false)>]
static member AsStreamForWrite : Windows.Storage.Streams.IOutputStream -> System.IO.Stream
<Extension()>
Public Function AsStreamForWrite (windowsRuntimeStream As IOutputStream) As Stream
パラメーター
- windowsRuntimeStream
- IOutputStream
変換対象の Windows ランタイム IOutputStream オブジェクト。
戻り値
変換されたストリーム。
- 属性
例外
windowsRuntimeStream
が null
です。
例
次の例では、 メソッドと AsStreamForRead メソッドを使用AsStreamForWriteして、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();
}
}
}
}
}
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 コードを次に示します。
<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 バイトが使用されます。 別のバッファー サイズを指定するには、 オーバーロードを使用します AsStreamForWrite(IOutputStream, Int32) 。
適用対象
AsStreamForWrite(IOutputStream, Int32)
重要
この API は CLS 準拠ではありません。
指定のバッファー サイズを利用し、Windows ランタイムの出力ストリームを Windows ストア アプリ用 .NET のマネージド ストリームに変換します。
public:
[System::Runtime::CompilerServices::Extension]
static System::IO::Stream ^ AsStreamForWrite(Windows::Storage::Streams::IOutputStream ^ windowsRuntimeStream, int bufferSize);
[System.CLSCompliant(false)]
public static System.IO.Stream AsStreamForWrite (this Windows.Storage.Streams.IOutputStream windowsRuntimeStream, int bufferSize);
[<System.CLSCompliant(false)>]
static member AsStreamForWrite : Windows.Storage.Streams.IOutputStream * int -> System.IO.Stream
<Extension()>
Public Function AsStreamForWrite (windowsRuntimeStream As IOutputStream, bufferSize As Integer) As Stream
パラメーター
- windowsRuntimeStream
- IOutputStream
変換対象の Windows ランタイム IOutputStream オブジェクト。
- bufferSize
- Int32
バッファーのサイズ (バイト数)。 この値を負にすることはできませんが、0 (ゼロ) に設定してバッファリングを無効にすることはできます。
戻り値
変換されたストリーム。
- 属性
例外
windowsRuntimeStream
が null
です。
bufferSize
が負の値です。
注釈
注意
Visual Basic および C# では、 型 Streamの任意のオブジェクトでインスタンス メソッドとしてこのメソッドを呼び出すことができます。 インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。 詳細については、「 拡張メソッド (Visual Basic)」 または 「拡張メソッド (C# プログラミング ガイド)」を参照してください。
ストリームの変換時にバッファー サイズを指定するには、このメソッドを使用します。 16,384 バイトの既定のバッファー サイズを使用するには、 オーバーロードを使用します AsStreamForWrite(IOutputStream) 。
ほとんどの状況では、バッファーリングによってストリーム操作のパフォーマンスが向上します。 バッファリングは 0 に設定 bufferSize
することで無効にすることができますが、バッファーの無効化が状況に適していると確信している場合にのみ、この操作を行う必要があります。
適用対象
.NET