我想将数据编码为缓冲区中的二进制格式,稍后我将写入文件或通过套接字传输。最好使用什么 C# 类来创建List<byte>
包含二进制数据的类。
我将在此缓冲区中以自定义编码格式(对于字符串)和整数和浮点类型的常规二进制数字布局存储整数、单字节字符串(即 ASCII)、浮点数和其他数据。
BinaryWriter
看起来它有我需要的方法,但它必须为我管理一个不断增长的缓冲区,我想List<byte>
在我完成编码后产生结果。
谢谢
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();
}
BinaryWriter 写入流。给它一个 MemoryStream,当你想要你的时List<byte>
,使用new List<byte>(stream.GetBuffer())
.