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 中以零起始的位元組位移,要從其中開始將位元組複製至資料流。

count
Int32

寫入的最大位元組數。

例外狀況

arraynull

offsetcount 描述 array中的無效範圍。

offsetcount 為負。

發生 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 工作

另請參閱

適用於