如何在C#中将struct System.Byte
byte[]
转换为System.IO.Stream
对象?
答案 0 :(得分:1109)
将字节数组转换为流的最简单方法是使用MemoryStream
类:
Stream stream = new MemoryStream(byteArray);
答案 1 :(得分:303)
您正在寻找MemoryStream.Write
method。例如,以下代码会将byte[]
数组的内容写入内存流:
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream();
stream.Write(myByteArray, 0, myByteArray.Length);
或者,您可以基于字节数组create a new,不可调整大小的MemoryStream
对象:
byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream(myByteArray);
答案 2 :(得分:27)
写入任何流(不仅是MemoryStream
)的一般方法是使用BinaryWriter
:
static void Write(Stream s, Byte[] bytes)
{
using (var writer = new BinaryWriter(s))
{
writer.Write(bytes);
}
}
答案 3 :(得分:4)
查看MemoryStream
课程。
答案 4 :(得分:1)
如果您在此处的其他 MemoryStream 示例中遇到错误,则需要将 Position 设置为 0。
public static Stream ToStream(this bytes[] bytes)
{
return new MemoryStream(bytes)
{
Position = 0
};
}