摘要
BinaryWriter是C#中一個非常有用的類,它提供了將二進制數據寫入流的方法。它在System.IO命名空間中找到,可以使用它來讀寫文件,網絡通信等等。除此之外,BinaryWriter還支持以特定編碼編寫字符串,這對于一些需要傳輸數據的場景非常有用。
BinaryWriter提供了一些常用的方法來讀寫數據,比如Write(byte),Write(char),Write(float)等等。它們可以直接寫入到流中,從而將數據保存到磁盤或者內存中。如果需要讀取這些數據,只需要通過Read方法將流中的數據讀取出來即可。
在上面的例子中,我們首先將字符串轉換為byte數組,然后將其作為參數傳遞給BinaryWriter的Write方法。這樣,就可以以UTF-8編碼方式將字符串寫入到流中了。
總的來說,BinaryWriter是一個非常實用的類,它可以方便地將二進制數據寫入到流中,并支持以特定編碼方式編寫字符串。如果需要處理大量的二進制數據,或者需要將數據傳輸到其他程序中,那么BinaryWriter就是一個非常好的選擇。
正文
屬性
|
|
---|
BaseStream | 獲取 BinaryWriter 的基礎流。 |
方法
|
|
---|
Close() | 關閉當前的 BinaryWriter 和基礎流。 |
Dispose() | 釋放 BinaryWriter 類的當前實例所使用的所有資源。 |
Dispose(Boolean) | 釋放由 BinaryWriter 占用的非托管資源,還可以另外再釋放托管資源。 |
DisposeAsync() | 異步釋放 BinaryWriter 類的當前實例所使用的所有資源。 |
Equals(Object) | 確定指定對象是否等于當前對象。 (繼承自 Object) |
Flush() | 清理當前編寫器的所有緩沖區,使所有緩沖數據寫入基礎設備。 |
GetHashCode() | 作為默認哈希函數。 (繼承自 Object) |
GetType() | 獲取當前實例的 Type。 (繼承自 Object) |
MemberwiseClone() | 創建當前 Object 的淺表副本。 (繼承自 Object) |
Seek(Int32, SeekOrigin) | 設置當前流中的位置。 |
ToString() | 返回表示當前對象的字符串。 (繼承自 Object) |
Write(Boolean) | 將單字節 Boolean 值寫入當前流,其中 0 表示 false ,1 表示 true 。 |
Write(Byte) | 將一個無符號字節寫入當前流,并將流的位置提升 1 個字節。 |
Write(Byte[]) | 將字節數組寫入基礎流。 |
Write(Byte[], Int32, Int32) | 將字節數組區域寫入當前流。 |
Write(Char) | 將 Unicode 字符寫入當前流,并根據所使用的 Encoding 和向流中寫入的特定字符,提升流的當前位置。 |
Write(Char[]) | 將字符數組寫入當前流,并根據所使用的 Encoding 和向流中寫入的特定字符,提升流的當前位置。 |
Write(Char[], Int32, Int32) | 將字符數組部分寫入當前流,并根據所使用的 Encoding (可能還根據向流中寫入的特定字符),提升流的當前位置。 |
Write(Decimal) | 將一個十進制值寫入當前流,并將流位置提升十六個字節。 |
Write(Double) | 將 8 字節浮點值寫入當前流,并將流的位置提升 8 個字節。 |
Write(Half) | 將雙字節浮點值寫入當前流,并將流位置提升兩個字節。 |
Write(Int16) | 將 2 字節帶符號整數寫入當前流,并將流的位置提升 2 個字節。 |
Write(Int32) | 將 4 字節帶符號整數寫入當前流,并將流的位置提升 4 個字節。 |
Write(Int64) | 將 8 字節帶符號整數寫入當前流,并將流的位置提升 8 個字節。 |
Write(ReadOnlySpan<Byte>) | 將字節范圍寫入當前流。 |
Write(ReadOnlySpan<Char>) | 將一段字符寫入當前流,并根據所使用的 Encoding (可能還根據向流中寫入的特定字符),提升流的當前位置。 |
Write(SByte) | 將一個帶符號字節寫入當前流,并將流的位置提升 1 個字節。 |
Write(Single) | 將 4 字節浮點值寫入當前流,并將流的位置提升 4 個字節。 |
Write(String) | 將有長度前綴的字符串按 BinaryWriter 的當前編碼寫入此流,并根據所使用的編碼和寫入流的特定字符,提升流的當前位置。 |
Write(UInt16) | 將 2 字節無符號整數寫入當前流,并將流的位置提升 2 個字節。 |
Write(UInt32) | 將 4 字節無符號整數寫入當前流,并將流的位置提升 4 個字節。 |
Write(UInt64) | 將 8 字節無符號整數寫入當前流,并將流的位置提升 8 個字節。 |
Write7BitEncodedInt(Int32) | 以壓縮格式寫入 32 位整數。 |
Write7BitEncodedInt64(Int64) | 一次寫出一個 7 位數字。 |
寫文件
using (var stream = File.Open("d:\\a.dat", FileMode.Create))
{
using (var writer = new BinaryWriter(stream, Encoding.UTF8, false))
{
writer.Write(1.37F);
writer.Write("博格巴何時能復出?答案還是個問號。");
writer.Write(10);
writer.Write(true);
}
}
該文章在 2024/2/7 22:56:22 編輯過