如何将struct System. Byte[]转换为C#中的System.IO.Stream对象?

如何将structSystem.Bytebyte[]转换为c#中的System.IO.Stream对象?

698367 次浏览

看看MemoryStream类。

您正在寻找MemoryStream.Write方法

例如,以下代码将byte[]数组的内容写入内存流:

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

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

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

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

static void Write(Stream s, Byte[] bytes){using (var writer = new BinaryWriter(s)){writer.Write(bytes);}}

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

Stream stream = new MemoryStream(byteArray);

如果您在此处的其他MemoryStream示例中遇到错误,则需要将位置设置为0。

public static Stream ToStream(this bytes[] bytes){return new MemoryStream(bytes){Position = 0};}