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

    在 .Net 的 IO 操作中经常会用到 Stream 和 Byte[],有两种形式:

    一、Stream -> Byte[]:

    1. 如果 Stream 的 Length 属性可读,非常的简单,代码如下:

    private byte[] GetBytes(Stream stream)
    {
        if (stream.CanSeek)
        {
            Byte[] buffer = new byte[stream.Length];
            stream.Write(buffer, 0, buffer.Length);
            return buffer;
        }
        //用下面的方法
        return null;
    }

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

    private byte[] GetBytes(Stream stream)
    {
        using (MemoryStream mstream = new MemoryStream())
        {
            byte[] bytes = new byte[1024]; //此处不易设置太大或太小的值,且应该为2的次方
            if (stream.CanRead)
            {
                while (true)
                {
                    int length = stream.Read(bytes, 0, bytes.Length);
                    if (length <= 0)
                    {
                        break;
                    }
                    mstream.Write(bytes, 0, length);
                }
            }
            return mstream.ToArray();
        }
    }

    二、bytes -> Stream:

    直接使用内存流即可 , 代码如下:

    MemoryStream ms=new MemoryStream(bytes)

     字符串(string)与 byte(byte[]) 之间的转换。

    byte[] buffer = System.Text.Encoding.Default.GetBytes("字符串");
    string str = System.Text.Encoding.Default.GetString(buffer);
  • 相关阅读:
    LeetCode Minimum Path Sum
    第六章-2-数组练习
    第六章-1-数组练习
    第五章-for循环的练习
    第四章:if else switch使用
    第三章
    实训篇-JavaScript-打地鼠
    实训篇-Html-注册页面【简单】
    实训篇-Html-计算器
    实训篇-JavaScript-陶渊明去没去过桃花源
  • 原文地址:https://www.cnblogs.com/jordan2009/p/2728864.html
Copyright © 2011-2022 走看看