C# BinaryWriter二进制写入流
|
admin
2024年2月7日 22:56
本文热度 498
|
摘要
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 编辑过