• 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);
  • 相关阅读:
    ssh免密登录
    idea搭建flink环境
    idea快捷键列表
    scala对复杂json的处理
    配置三台服务器的时间同步-linux 及 ntp.conf配置文件详解
    91. Reverse Linked List 反转链表
    92. Reverse Linked List II 反转链表 II
    121. Best Time to Buy and Sell Stock 买卖股票的最佳时机
    53. Maximum Subarray最大子序和
    70. Climbing Stairs爬楼梯
  • 原文地址:https://www.cnblogs.com/jordan2009/p/2728864.html
Copyright © 2020-2023  润新知