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

时间:2011-01-19 14:08:58

标签: c# .net arrays stream

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

5 个答案:

答案 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
    };
}