class Program
    {
        static void Main(string[] args)
        {
            int count;
            //从程序外部获取byte数组
            byte[] byteArray = getByteData();
            char[] charArray;
            UnicodeEncoding uniEncoding = new UnicodeEncoding();
            //创建MemoryStream内存流类的实例
            MemoryStream memStream = new MemoryStream(byteArray);
            count = 0;
            //显示内存流类实例的属性
            Console.WriteLine(
            "容量:{0}\t数量:{1}\t当前位置:{2}",
            memStream.Capacity.ToString(),
            memStream.Length.ToString(),
            memStream.Position.ToString());
            memStream.Seek(0, SeekOrigin.Begin);//将当前位置指定为流开始处
            byteArray = new byte[memStream.Length];
            count = memStream.Read(byteArray, 0, 20);//从流中读取前20个字节
            while (count < memStream.Length)//逐个读取剩下的字节
            {
                byteArray[count++] = Convert.ToByte(memStream.ReadByte());
            }
            //将字节数组转换为字符数组并显示出来
            charArray = new char[uniEncoding.GetCharCount(byteArray, 0, count)];
            uniEncoding.GetChars(byteArray, 0, count, charArray, 0);
            Console.WriteLine(charArray);
            Console.ReadLine();
        }
        private static byte[] getByteData()//获取外部字节数组的方法
        {
            UnicodeEncoding uniEncoding = new UnicodeEncoding();
            byte[] result = uniEncoding.GetBytes("memStream示例测试字符串");
            return result;
        }
    }