关于.NET:如何将struct system.byte byte[]转换为c中的system.io.stream对象?

 2019-04-22 

How do I convert struct System.Byte byte[] to a System.IO.Stream object in C#?

如何将C中的结构System.Bytebyte[]转换为System.IO.Stream对象?


将字节数组转换为流的最简单方法是使用MemoryStream类:

1
Stream stream = new MemoryStream(byteArray);


你在找MemoryStream.Write方法。例如,以下代码将byte[]数组的内容写入内存流:

1
2
3
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream();
stream.Write(myByteArray, 0, myByteArray.Length);

或者,可以基于字节数组创建一个新的、不可调整大小的MemoryStream对象:

1
2
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream(myByteArray);


写入任何流的一般方法(不只是MemoryStream)是使用BinaryWriter

1
2
3
4
5
6
7
static void Write(Stream s, Byte[] bytes)
{
    using (var writer = new BinaryWriter(s))
    {
        writer.Write(bytes);
    }
}

查看MemoryStream类。