C# 使用 MemoryStream 将数据写入内存
转自: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 的实例。并且实例容量大小可扩展。
完整代码如下:
引入命名空间:
- using System.IO;
完整代码:
- namespace MemoryStreamApp
- {
- class Program
- {
- static void Main(string[] args)
- {
- //构造MemoryStream实例,并输出初始分配容量及使用大小
- MemoryStream mem = new MemoryStream();
- Console.WriteLine("初始分配容量:{0}" , mem.Capacity);
- Console.WriteLine("初始使用量:{0}" , mem.Length);
- //将待写入的数据从字符串转换为字节数组
- UnicodeEncoding encoder = new UnicodeEncoding();
- byte[] bytes = encoder.GetBytes("新增数据");
- //向内存流中写入数据
- for (int i = 1; i < 4; i++)
- {
- Console.WriteLine("第{0}次写入新数据", i);
- mem.Write(bytes, 0, bytes.Length);
- }
- //写入数据后 MemoryStream 实例的容量和使用大小
- Console.WriteLine("当前分配容量:{0}",mem.Capacity);
- Console.WriteLine("当前使用量:{0}",mem.Length);
- Console.ReadLine();
- }
- }
- }
该程序运行效果:

若以上代码无法正常编译,可下载鄙人上传的项目文件:http://download.csdn.net/source/3465990
C# 使用 MemoryStream 将数据写入内存的更多相关文章
- [转帖]时序数据库技术体系 – InfluxDB TSM存储引擎之数据写入
时序数据库技术体系 – InfluxDB TSM存储引擎之数据写入 http://hbasefly.com/2018/03/27/timeseries-database-6/ 2018年3月27日 ...
- SQL Server内存数据写入磁盘方法比较
众所周知,SQLServer增删改数据最先都是在内存中进行的,这可以大大加快数据操作的速度: 当内存中的数据被修改了,而磁盘中的数据还没有被修改时,就产生了所谓的“脏页”,SQLServer是如何同步 ...
- linux强制将数据写入磁盘,防止丢失内存的数据
sync命令文件系统管理 sync命令用于强制被改变的内容立刻写入磁盘,更新超块信息. 在Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘, 以提高系 ...
- 当客户端提交更新数据请求时,是先写入edits,然后再写入内存的
http://blog.sina.com.cn/s/blog_6f83c7470101b7d3.html http://blog.csdn.net/slq1023/article/details/49 ...
- Centos-强制将内存中数据写入磁盘-sync
sync 强制将内存中数据写入磁盘,以免数据丢失.在linux系统中,修改过的操作并不会立即写入磁盘,而是先写到内存中,通过buffer队列当达到指定时间或者指定大小再一次性写入磁盘,提高IO效率,正 ...
- 使用spark将内存中的数据写入到hive表中
使用spark将内存中的数据写入到hive表中 hive-site.xml <?xml version="1.0" encoding="UTF-8" st ...
- C结构体中数据的内存对齐问题
转自:http://www.cnblogs.com/qwcbeyond/archive/2012/05/08/2490897.html 32位机一般默认4字节对齐(32位机机器字长4字节),64位机一 ...
- C语言 将整数写入内存指定的连续字节单元中
将整数数组写入0x40003000开始的连续10个字节内存单元中,注意unsigned char *指向一个字节,而int *指向1个字(4个字),但是可以把字中存储的整数放入字节单元中,只要不超过表 ...
- iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):2 H264数据写入文件
本文档为iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):1 概述续篇,主要描述: CMSampleBufferRef读取实际数据 序列参数集(Sequence Para ...
随机推荐
- Android 音频 OpenSL ES 录音 采集
1,; int channelConfig = AudioFormat.CHANNEL_OUT_STEREO; int audioFormat = AudioFormat.ENCODING_PCM_1 ...
- UVALive 6530 Football (水
题目链接:点击打开链 #include <cstdio> #include <vector> #include <algorithm> using namespac ...
- 【转】android 签名验证防止重打包
网上资料很多,这里只做一个笔记反编译 dex 修改重新打包签名后 apk 的签名信息肯定会改变,所以可以在代码中判断签名信息是否被改变过,如果签名不一致就退出程序,以防止 apk 被重新打包. 1 j ...
- 【BZOJ3295】[Cqoi2011]动态逆序对 cdq分治
[BZOJ3295][Cqoi2011]动态逆序对 Description 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数.给1到n的一个排列,按照某种顺序依 ...
- 【BZOJ3771】Triple 生成函数+FFT
[BZOJ3771]Triple Description 我们讲一个悲伤的故事. 从前有一个贫穷的樵夫在河边砍柴. 这时候河里出现了一个水神,夺过了他的斧头,说: “这把斧头,是不是你的?” 樵夫一看 ...
- 【题解】Painting Fence
[题解]Painting Fence 分治模板.贪心加分治.直接\(O(n^2logn)\)分治过去.考虑一块联通的柱形是子问题的,是递归的,贪心分治就可.记得对\(r-l+1\)取\(min\). ...
- 如何修改硬盘挂载的名字LABEL
➜ ~ df -h Filesystem Size Used Avail Use% Mounted on/dev/sda2 114G 97G 12G 90% /media/brian/4ef34b75 ...
- 通过崩溃trace来查找问题原因
从友盟中, 我们可能会得到如下信息: Application received signal SIGSEGV (null) ( 0 CoreFoundation 0x359348a7 __except ...
- CSS那个背景图片的坐标怎么设置?怎么计算的?
background:url(images/hh.gif) no-repeat -10px 0;},作用是移动背景的位置. 背影图片的左上角相对当前元素左上角的坐标. 右为X轴正半轴, 下为Y轴正半轴 ...
- matlab高亮显示选中的变量
第一步:点preference. 第二步: