語言

FileChannel.Force(Boolean) 方法

定義

強制將該通道檔案的任何更新寫入包含該通道的儲存裝置。

[Android.Runtime.Register("force", "(Z)V", "GetForce_ZHandler")]
public abstract void Force(bool metaData);
[<Android.Runtime.Register("force", "(Z)V", "GetForce_ZHandler")>]
abstract member Force : bool -> unit

參數

metaData
Boolean

如果, true 則此方法必須強制寫入檔案內容與中繼資料的變更;否則只需強制寫入內容變更

屬性

例外狀況

如果這個頻道已經關閉了。

如果再發生一次 I/O 錯誤。

備註

強制將該通道檔案的任何更新寫入包含該通道的儲存裝置。

如果該通道的檔案位於本地儲存裝置上,那麼當此方法回傳時,保證自建立此通道或自最後一次呼叫以來對檔案所做的所有變更都會寫入該裝置。 這有助於確保系統當機時關鍵資訊不會遺失。

如果檔案不存在於本地裝置,則無法提供此類保證。

此 metaData 參數可用來限制此方法所需執行的 I/O 操作數量。 通過 false 此參數表示只需寫入檔案內容的更新到儲存;通過 true 則表示必須寫入檔案內容與中繼資料的更新,這通常至少需要一次額外的輸入輸出操作。 這個參數是否真的有影響取決於底層作業系統,因此未明確說明。

即使通道僅開啟讀取,呼叫此方法仍可能導致輸入輸出操作發生。 例如,有些作業系統會在檔案的元資料中保留最後存取時間,並在檔案被讀取時更新此時間。 是否真的做到這點取決於系統,因此尚未明確說明。

此方法僅保證強制更改透過本類別定義的方法對通道檔案所做的變更。 它可能會強制或不會強制更改透過引用該方法所獲得MappedByteBuffer <i>mapped byte buffer</i>的內容#map map所做出的變更。 呼叫 MappedByteBuffer#force force 映射位元組緩衝區的方法會強制寫入對緩衝區內容所做的變更。

Java 文件 java.nio.channels.FileChannel.force(boolean)。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於