我应该使用哪个类将二进制数据写入缓冲区(比如一个字节列表)

Mic*_*eyn 2 .net c# .net-4.0 c#-4.0

我想在缓冲区中将数据编码为二进制格式,稍后我将写入文件或通过套接字传输.C#类或类最适合用于创建List<byte>包含二进制数据的内容.

我将以自定义编码格式(对于字符串)存储整数,单字节字符串(即ASCII),浮点数和其他数据,以及用于整数和浮点类型的常规二进制数字布局.

BinaryWriter看起来它有我需要的方法,但它必须为我管理一个不断增长的缓冲区,我想List<byte>从我完成编码时产生一个结果.

谢谢

Chr*_*ain 7

BinaryWriter,写入MemoryStream.如果您需要的内存超过可用内存,则可以轻松切换到临时文件流.

using (var myStream = new MemoryStream()) {
    using (var myWriter = new BinaryWriter(myStream)) {
        // write here
    }
    using (var myReader = new BinaryReader(myStream)) {
        // read here
    }

    // put the bytes into an array...
    var myBuffer = myStream.ToArray();

    // if you *really* want a List<Byte> (you probably don't- see my comment)
    var myBytesList = myStream.ToArray().ToList();
}
Run Code Online (Sandbox Code Playgroud)