在C#中,如何将结构体
System.Byte
byte[]
转换为System.IO.Stream
对象?你需要使用MemoryStream.Write
方法。
例如,以下代码将会把一个byte[]
数组的内容写入到内存流中:
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream();
stream.Write(myByteArray, 0, myByteArray.Length);
或者,您可以基于字节数组创建一个新的不可调整大小的MemoryStream
对象:create a new
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream(myByteArray);
MemoryStream.Write
比new MemoryStream(myByteArray)
消耗更多的内存。 - Alex from Jitbit写入任何流(不仅仅是MemoryStream
)的通用方法是使用BinaryWriter
:
static void Write(Stream s, Byte[] bytes)
{
using (var writer = new BinaryWriter(s))
{
writer.Write(bytes);
}
}
如果你在这里的其他MemoryStream示例中遇到错误,请将Position设置为0。
public static Stream ToStream(this bytes[] bytes)
{
return new MemoryStream(bytes)
{
Position = 0
};
}
Stream into Byte[]:
MemoryStream memory = (MemoryStream)stream;
byte[] imageData = memory.ToArray();
stream.ToArray()
。 - Florian Fida