FileStream.Write メソッド

定義

オーバーロード

Write(ReadOnlySpan<Byte>)

読み取り専用スパンから現在のファイル ストリームにバイト シーケンスを書き込み、書き込まれたバイト数だけこのファイル ストリーム内の現在位置を進めます。

Write(Byte[], Int32, Int32)

ファイル ストリームにバイトのブロックを書き込みます。

Write(ReadOnlySpan<Byte>)

ソース:
FileStream.cs
ソース:
FileStream.cs
ソース:
FileStream.cs

読み取り専用スパンから現在のファイル ストリームにバイト シーケンスを書き込み、書き込まれたバイト数だけこのファイル ストリーム内の現在位置を進めます。

public:
 override void Write(ReadOnlySpan<System::Byte> buffer);
public override void Write (ReadOnlySpan<byte> buffer);
override this.Write : ReadOnlySpan<byte> -> unit
Public Overrides Sub Write (buffer As ReadOnlySpan(Of Byte))

パラメーター

buffer
ReadOnlySpan<Byte>

メモリの領域。 このメソッドでは、この領域のコンテンツが現在のファイル ストリームにコピーされます。

例外

.NET 8 以降のバージョン: 基になるパイプが閉じているか、切断されています。

注釈

プロパティを使用して、 CanWrite 現在のインスタンスが書き込みをサポートしているかどうかを判断します。 メソッドを WriteAsync 使用して、現在のストリームに非同期的に書き込みます。

書き込み操作が成功した場合、ファイル ストリーム内の位置は書き込まれたバイト数だけ進みます。 例外が発生した場合、ファイル ストリーム内の位置は変更されません。

適用対象

Write(Byte[], Int32, Int32)

ソース:
FileStream.cs
ソース:
FileStream.cs
ソース:
FileStream.cs

ファイル ストリームにバイトのブロックを書き込みます。

public:
 override void Write(cli::array <System::Byte> ^ array, int offset, int count);
public:
 override void Write(cli::array <System::Byte> ^ buffer, int offset, int count);
public override void Write (byte[] array, int offset, int count);
public override void Write (byte[] buffer, int offset, int count);
override this.Write : byte[] * int * int -> unit
override this.Write : byte[] * int * int -> unit
Public Overrides Sub Write (array As Byte(), offset As Integer, count As Integer)
Public Overrides Sub Write (buffer As Byte(), offset As Integer, count As Integer)

パラメーター

arraybuffer
Byte[]

ストリームに書き込むデータを格納しているバッファー。

offset
Int32

ストリームへのバイトのコピーを開始する位置を示す array 内のバイト オフセット。インデックス番号は 0 から始まります。

count
Int32

書き込む最大バイト数。

例外

arraynullです。

offsetcountarray の無効な範囲を示しています。

offset または count が負の値です。

I/O エラーが発生しました。

または

別のスレッドが原因で、オペレーティング システムのファイル ハンドルの位置で予期しない変更が発生した可能性があります。

または

.NET 8 以降のバージョン: 基になるパイプが閉じているか、切断されています。

ストリームは閉じられています。

現在のストリームのインスタンスでは、書き込みをサポートしません。

このコード例は、 メソッドに対して提供されるより大きな例の Lock 一部です。

// Write the original file data.
if ( fileStream->Length == 0 )
{
   tempString = String::Concat( lastRecordText, recordNumber.ToString() );
   fileStream->Write( uniEncoding->GetBytes( tempString ), 0, uniEncoding->GetByteCount( tempString ) );
}
// Write the original file data.
if(fileStream.Length == 0)
{
    tempString =
        lastRecordText + recordNumber.ToString();
    fileStream.Write(uniEncoding.GetBytes(tempString),
        0, uniEncoding.GetByteCount(tempString));
}
// Write the original file data.
if fileStream.Length = 0 then
    let tempString = lastRecordText + string recordNumber
    fileStream.Write(uniEncoding.GetBytes tempString, 0, uniEncoding.GetByteCount tempString)
' Write the original file data.
If aFileStream.Length = 0 Then
    tempString = _
        lastRecordText + recordNumber.ToString()
    aFileStream.Write(uniEncoding.GetBytes(tempString), _
        0, uniEncoding.GetByteCount(tempString))
End If

注釈

このメソッドは、Write をオーバーライドします。

パラメーターは offset 、コピーを開始するバイト array のオフセット (バッファー インデックス) を指定し count 、 パラメーターはストリームに書き込まれるバイト数を指定します。 書き込み操作が成功した場合、ストリームの現在位置は書き込まれたバイト数だけ進みます。 例外が発生した場合、ストリームの現在位置は変更されません。

注意

プロパティを使用して、 CanWrite 現在のインスタンスが書き込みをサポートしているかどうかを判断します。 詳細については、「CanWrite」を参照してください。

書き込み操作を実行しているスレッドを中断しないでください。 スレッドのブロックが解除された後にアプリケーションが正常に実行されるように見えるかもしれませんが、中断によってアプリケーションのパフォーマンスと信頼性が低下する可能性があります。

一般的なファイル操作とディレクトリ操作の一覧については、「 一般的な I/O タスク」を参照してください。

こちらもご覧ください

適用対象