为了账号安全,请及时绑定邮箱和手机立即绑定

从流创建字节数组

从流创建字节数组

噜噜哒 2019-06-14 16:06:27
从流创建字节数组从输入流创建字节数组的首选方法是什么?下面是我使用.NET 3.5的当前解决方案。Stream s;byte[] b;using (BinaryReader br = new BinaryReader(s)){     b = br.ReadBytes((int)s.Length);}读和写小溪的小块还是个更好的主意吗?
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

虽然Jon的答案是正确的,但他正在重写已经存在于CopyTo..因此,对于.NET 4,使用Sandip的解决方案,但对于以前版本的.net,则使用Jon的答案。中使用“作为例外,将改进Sandip的代码。CopyTo在许多情况下,很有可能并将离开MemoryStream没有处理。

public static byte[] ReadFully(Stream input){
    using (MemoryStream ms = new MemoryStream())
    {
        input.CopyTo(ms);
        return ms.ToArray();
    }}


查看完整回答
反对 回复 2019-06-14
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

我只想指出,万一你已经有了一个内存流memorystream.ToArray()为了这个。

此外,如果您正在处理未知或不同子类型的流,并且可以接收MemoryStream,对于这些情况,您可以继续使用上述方法,而对于其他情况,您仍然可以使用已接受的答案,如下所示:

public static byte[] StreamToByteArray(Stream stream){
    if (stream is MemoryStream)
    {
        return ((MemoryStream)stream).ToArray();                
    }
    else
    {
        // Jon Skeet's accepted answer 
        return ReadFully(stream);
    }}


查看完整回答
反对 回复 2019-06-14
  • 3 回答
  • 0 关注
  • 554 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信