FileStream.Write 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
Write(ReadOnlySpan<Byte>) |
將位元組序列從唯讀範圍寫入目前的檔案資料流,並依寫入的位元組數將此檔案資料流中目前位置往前移。 |
Write(Byte[], Int32, Int32) |
將位元組區塊寫入檔案資料流中。 |
Write(ReadOnlySpan<Byte>)
將位元組序列從唯讀範圍寫入目前的檔案資料流,並依寫入的位元組數將此檔案資料流中目前位置往前移。
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)
將位元組區塊寫入檔案資料流中。
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
寫入的最大位元組數。
例外狀況
array
為 null
。
offset
和 count
描述 array
中的無效範圍。
offset
或 count
為負。
資料流已關閉。
目前的資料流執行個體不支援寫入。
範例
此程式代碼範例是為 方法提供之較大範例的 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
參數會提供將寫入數據流的位元組數目。 如果寫入作業成功,數據流的目前位置會由寫入的位元組數目進階。 如果發生例外狀況,數據流的目前位置不會變更。
請勿中斷執行寫入作業的線程。 雖然應用程式可能會在線程解除封鎖之後順利執行,但中斷可能會降低應用程式的效能和可靠性。
如需一般檔案和目錄作業的清單,請參閱 一般 I/O 工作。