扬帆☆启航

1、企业网站建设、推广、维护 2、中小型企业、店铺的业务管理系统(人事、工资、销售、库存管理、会员管理、统计查询、发票管理、客户关系管理,售后服务管理,物资管理等) 3、中小型企业信息化解决方案

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

MemoryStream位于System.IO命名空间,为系统内存提供流式的读写操作。常作为其他流数据交换时的中间对象操作。

1、MemoryStream类封装一个字节数组,在构造实例时可以使用一个字节数组作为参数,但是数组的长度无法调整。使用默认无参数构造函数创建实例,可以使用Write方法写入,随着字节数据的写入,数组的大小自动调整。

2、在对MemoryStream类中数据流进行读取时,可以使用seek方法定位读取器的当前的位置,可以通过指定长度的数组一次性读取指定长度的数据。ReadByte方法每次读取一个字节,并将字节返回一个整数值。

3、UnicodeEncoding类中定义了Unicode中UTF-16编码的相关功能。通过其中的方法将字符串转换为字节,也可以将字节转换为字符串。

4、开始实例:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace MemoryStreamExample
{
    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;
        }
    }
}

posted on 2008-10-11 18:01  赵晓雷  阅读(5687)  评论(0编辑  收藏  举报