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