转自:http://blog.csdn.net/andrew_wx/article/details/6629951

常用的MemoryStream构造函数有以下3种。

1:MemoryStream() 该构造函数初始分配容量大小为0字节,随着数据的不断写入,其容量可以不断的自动扩展。一般在不确定数据内容大小的时候应用这种形式。

2:MemoryStream(byte[]) 和 MemoryStream 的无参数构造函数不同,通过该构造数的 MemoryStream 实例根据 byte 类型的字节数组进行初始化,并且实例的容量大小固定为字节数组的长度。由于实例的容量不能扩展,该构造函数一般用于数据不发生变化的场合。

3:MemoryStream(int capacity) 通过该构造函数创建初始容量大小为 capacity 的实例。并且实例容量大小可扩展。

完整代码如下:

引入命名空间:

[csharp] view
plain
 copy

print?

  1. using System.IO;

完整代码:

[csharp] view
plain
 copy

print?

  1. namespace MemoryStreamApp
  2. {
  3. class Program
  4. {
  5. static void Main(string[] args)
  6. {
  7. //构造MemoryStream实例,并输出初始分配容量及使用大小
  8. MemoryStream mem = new MemoryStream();
  9. Console.WriteLine("初始分配容量:{0}" , mem.Capacity);
  10. Console.WriteLine("初始使用量:{0}" , mem.Length);
  11. //将待写入的数据从字符串转换为字节数组
  12. UnicodeEncoding encoder = new UnicodeEncoding();
  13. byte[] bytes = encoder.GetBytes("新增数据");
  14. //向内存流中写入数据
  15. for (int i = 1; i < 4; i++)
  16. {
  17. Console.WriteLine("第{0}次写入新数据", i);
  18. mem.Write(bytes, 0, bytes.Length);
  19. }
  20. //写入数据后 MemoryStream 实例的容量和使用大小
  21. Console.WriteLine("当前分配容量:{0}",mem.Capacity);
  22. Console.WriteLine("当前使用量:{0}",mem.Length);
  23. Console.ReadLine();
  24. }
  25. }
  26. }

该程序运行效果:

若以上代码无法正常编译,可下载鄙人上传的项目文件:http://download.csdn.net/source/3465990

最新文章

  1. 使用FTP FtpWebRequest UsePassive 属性实现主动上传
  2. Java基础一
  3. static静态结合&amp;符号理解
  4. hdu5536 字典树xor
  5. js原型和构造函数混合模式
  6. POJ 3469 Dual Core CPU (最小割建模)
  7. avalonjs1.5 入门教程
  8. Unity 4.5.2 for Mac 下载+安装+破解
  9. iphone/ipad/iOS on Linux Debian7/ubuntu12.04/linuxmint13/ubuntu14.04 compiling from source
  10. delphi TServerSocket的多线程
  11. zookeeper的集群介绍、搭建、环境、安装
  12. Chipmunk僵尸物理对象的出现和解决(二)
  13. luogu P2962 [USACO09NOV]灯Lights 高斯消元
  14. Git版本控制工具的简单使用
  15. HTML中--定义header和footer高度中间自适应
  16. mysql 对表字段进行长度截取操作
  17. JSON调试找不到 net.sf.ezmorph.Morpher
  18. ios之block笔记
  19. python编码(三)
  20. 【week9】psp

热门文章

  1. 【解决】无法连接 MKS:套接字连接尝试次数太多正在放弃
  2. 【Selenium + Python】之如何获取最新的报告以及os.path.getmtime与os.path.getctime的区别
  3. JQ动态获取数据
  4. 在安装ubuntu时,卡在启动画面
  5. Docker基础原理
  6. 【BZOJ1316】树上的询问 点分治+set
  7. 【BZOJ4012】[HNOI2015]开店 动态树分治+二分
  8. Filebeat+ELK
  9. windows系统下nodejs、npm、express的下载和安装教程——2016.11.09
  10. 【题解】Greatest Common Increasing Subsequence