流操作:解除 StreamWriter 與 BaseStream 的關聯
使用 StreamWriter
及其 Close()
或 Dispose()
方法時,會遇到一個難題:這些方法也會關閉其底層的 BaseStream
。如果外部元件在 StreamWriter
完成任務後仍需要存取 BaseStream
,則會出現問題。
為了解決這個問題,.NET Framework 4.5 及更高版本提供了一個重載的 StreamWriter
建構函數,讓您可以指定 BaseStream
保持開啟狀態:
<code class="language-csharp">StreamWriter(Stream stream, Encoding encoding, bool leaveOpen)</code>
此建構子接受第三個參數 leaveOpen
,預設為 false
。將 leaveOpen
設為 true
,您可以確保在關閉或釋放 StreamWriter
時,BaseStream
保持開啟。
在 .NET Framework 早期版本(4.5 之前),由於不存在此重載建構函數,因此可以使用以下幾種方法:
StreamWriter
,只需將其清空即可。這將釋放任何緩衝數據,而不會關閉 BaseStream
。 Close()
和 Dispose()
調用,同時將其他所有操作代理到底層的 BaseStream
。 以上是如何防止StreamWriter關閉底層BaseStream?的詳細內容。更多資訊請關注PHP中文網其他相關文章!