zoukankan      html  css  js  c++  java
  • Stream 和 Byte[]互操作

    -

    在.Net的IO操作中经常会用到Stream和Byte[],有两种形式:
    一.Stream->Byte[]:
         1.如果Stream的 Length属性可读,非常的简单,代码如下:

     1  private byte[] GetBytes(Stream stream)
     2        {
     3            if (stream.CanSeek && stream.CanRead)
     4            {
     5                Byte[] buffer = new byte[stream.Length];
     6                stream.Read(buffer, 0, buffer.Length);
     7                return buffer;
     8            }

     9            //用下面的方法
    10            return null;
    11        }

          2.如果Stream的 Length属性不可读,代码如下:

     1        private byte[] GetBytes(Stream stream)
     2        {
     3            using (MemoryStream mstream = new MemoryStream())
     4            {
     5                byte[] bytes = new byte[1024]; //此处不易设置太大或太小的值,且应该为2的次方
     6                if (stream.CanRead)
     7                {
     8                    while (true)
     9                    {
    10                        int length = stream.Read(bytes, 0, bytes.Length);
    11                        if (length <= 0)
    12                        {
    13                            break;
    14                        }

    15                        mstream.Write(bytes, 0, length);
    16                    }

    17                }

    18                return mstream.ToArray();
    19            }

    20        }

    21
    二.bytes-Stream:
       直接使用内存流即可,代码如下:
    MemoryStream ms=new MemoryStream(bytes)
  • 相关阅读:
    页面跳转
    获取gridview 某列的值
    C#日期格式化的几种处理方法(转)
    asp.net 退出 按钮
    asp.net控件大全(一)
    导出Excel
    DropDownList的二级联动 (SqlDataSource实现和SQL 绑定实现)
    asp.net控件大全(二)
    如何让Gridview在没有数据的时候显示表头(asp.net)
    自定义日期格式
  • 原文地址:https://www.cnblogs.com/nsharp/p/763866.html
Copyright © 2011-2022 走看看