如何在 System.IO.Stream 中转换 System.Byte[]?

Posted

技术标签:

【中文标题】如何在 System.IO.Stream 中转换 System.Byte[]?【英文标题】:how to convert System.Byte[] in System.IO.Stream? 【发布时间】:2013-05-20 03:22:04 【问题描述】:

我无法将字节转换为流。有没有简单的方法可以做到这一点?

Stream stream;
stream = (Stream) vByte; //something is going wrong in this part. 
//vByte is a byte variable

【问题讨论】:

***.com/questions/4736155/… 嗯,这是 Java 还是 C# 问题? (见标签) @Puce 如果这是一个 Java 问题,我需要删除我的答案并将其替换为 ByteArrayInputStream 我没有被指定,但是看到 Java 没有 System.Byte[] 类型,它更有可能是 C#。因此,我恢复了将其标记为 Java 的编辑。 啊,原来是标记为C#... 【参考方案1】:

您需要使用byte[] 实例化一个MemoryStream 对象:

    MemoryStream stream = new MemoryStream(vByte);

【讨论】:

【参考方案2】:

您不能使用强制转换表达式将某些内容转换为不同的类型。

相反,您可以在数组周围创建一个MemoryStream

一般来说,转换运算符会将对象的编译时类型更改为不同的类型,前提是它在运行时实际上是该类型的实例。 详细解释见this blog post。

【讨论】:

以上是关于如何在 System.IO.Stream 中转换 System.Byte[]?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 System.IO.Stream 转换为字符串,然后再转换回 System.IO.Stream

如何将 IStream(C++) 转换为 System::IO::Stream(c#),反之亦然

c# 将 system.IO.Stream 转换为 Byte[] [重复]

将字符串转换为 System.IO.Stream [重复]

将 System.IO.Stream 转换为 Byte[] [重复]

无法将“Microsoft.Asp.NetCore.Http.FormFile”类型的对象转换为在 Asp.NetCore MVC Web 应用程序中键入“System.IO.Stream”