转自: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

C# 使用 MemoryStream 将数据写入内存的更多相关文章

  1. [转帖]时序数据库技术体系 – InfluxDB TSM存储引擎之数据写入

    时序数据库技术体系 – InfluxDB TSM存储引擎之数据写入 http://hbasefly.com/2018/03/27/timeseries-database-6/  2018年3月27日  ...

  2. SQL Server内存数据写入磁盘方法比较

    众所周知,SQLServer增删改数据最先都是在内存中进行的,这可以大大加快数据操作的速度: 当内存中的数据被修改了,而磁盘中的数据还没有被修改时,就产生了所谓的“脏页”,SQLServer是如何同步 ...

  3. linux强制将数据写入磁盘,防止丢失内存的数据

    sync命令文件系统管理 sync命令用于强制被改变的内容立刻写入磁盘,更新超块信息. 在Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘, 以提高系 ...

  4. 当客户端提交更新数据请求时,是先写入edits,然后再写入内存的

    http://blog.sina.com.cn/s/blog_6f83c7470101b7d3.html http://blog.csdn.net/slq1023/article/details/49 ...

  5. Centos-强制将内存中数据写入磁盘-sync

    sync 强制将内存中数据写入磁盘,以免数据丢失.在linux系统中,修改过的操作并不会立即写入磁盘,而是先写到内存中,通过buffer队列当达到指定时间或者指定大小再一次性写入磁盘,提高IO效率,正 ...

  6. 使用spark将内存中的数据写入到hive表中

    使用spark将内存中的数据写入到hive表中 hive-site.xml <?xml version="1.0" encoding="UTF-8" st ...

  7. C结构体中数据的内存对齐问题

    转自:http://www.cnblogs.com/qwcbeyond/archive/2012/05/08/2490897.html 32位机一般默认4字节对齐(32位机机器字长4字节),64位机一 ...

  8. C语言 将整数写入内存指定的连续字节单元中

    将整数数组写入0x40003000开始的连续10个字节内存单元中,注意unsigned char *指向一个字节,而int *指向1个字(4个字),但是可以把字中存储的整数放入字节单元中,只要不超过表 ...

  9. iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):2 H264数据写入文件

    本文档为iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):1 概述续篇,主要描述: CMSampleBufferRef读取实际数据 序列参数集(Sequence Para ...

随机推荐

  1. Python学习总结之四 -- 这就是Python的字典

    字典原来是这么回事儿 Python学习到现在,我们已经知道,如果想将值分组到结构中,并且通过编号对其进行引用,列表就可以派上用场.不过,今天,我们将学到一种通过名字引用值的数据结构,应该知道这种数据类 ...

  2. 【C语言】一句printf代码——{ a[0] ? 0[a] }

    这是前段时间做的http://fun.coolshell.cn/中的一道题,很有意思,涉及的其实是C的基础,不过当时第一次看见这行代码确实把我弄懵了: printf(&unix["\ ...

  3. ASP.NET动态网站制作(8)-- JS(3)

    前言:JS的第三节课,这节课主要讲函数.对象及方法. 内容: 1.九九乘法表例子: HTML代码: <!DOCTYPE html> <html xmlns="http:// ...

  4. Java 基础系列之volatile变量(一)

    一.锁 两种特性:互斥性(mutual exclusion).可见性(visibility).原子性(atomic) 互斥性就是一次只有一个线程可以访问该共享数据,可见性就是释放锁之前,对共享数据的修 ...

  5. 关于EasyRTSPClient、EasyPlayer RTSP流重连问题的解释

    EasyPlayer.EasyRTSPClient是如何设计重连的 首先大概解释一下EasyRTSPClient与EasyPlayer间的关系:EasyRTSPClient是一个专门用于与RTSP流媒 ...

  6. live555二次开发经验总结:RTSPClient客户端与RTSPServer服务器

    live555介绍 安防领域的流媒体开发者估计没有谁不知道live555的,可能并不是因为其架构有多牛,代码有多好看,而是因为这玩意存在的年限实在是太长了,从changelog来看,live555从2 ...

  7. 【网络与系统安全】20179209 利用metasploit对windows系统的渗透

    这次实验的主角是素有"内网杀手"之称的metasploit.还是少说一些夸赞它的话(因为即使功能再强大,不明白它的原理,不会灵活使用它集成的功能,一样没有用),我们直入主题.简单说 ...

  8. segnet 编译与测试

    segnet 编译与测试参考:http://sunxg13.github.io/2015/09/10/caffe/http://m.blog.csdn.net/lemianli/article/det ...

  9. 负载均衡,会话保持,session同步(转)

    一,什么负载均衡一个新网站是不要做负载均衡的,因为访问量不大,流量也不大,所以没有必要搞这些东西.但是随着网站访问量和流量的快速增长,单台服务器受自身硬件条件的限制,很难承受这么大的访问量.在这种情况 ...

  10. LeetCode:划分字母区间【763】

    LeetCode:划分字母区间[763] 题目描述 字符串 S 由小写字母组成.我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段.返回一个表示每个字符串片段的长度的列表. 示 ...