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