您的位置:首页 > 编程语言 > C#

使用MemoryStream类读写内存

2016-12-05 11:45 337 查看
MemoryStream类用于向内存而不是磁盘读写数据。MemoryStream封装以无符号字节数组形式存储的数据,该数组在创建MemoryStream对象时被初始化,或者该数组可创建为空数组。可在内存中直接访问这些封装的数据。内存流可降低应用程序中对临时缓冲区和临时文件的需要。下面列出了MemoryStream类的重要方法:

Read():读取MemoryStream流对象,将值写入缓存区。

ReadByte():从MemoryStream流中读取一个字节。

Write():将值从缓存区写入MemoryStream流对象。

WriteByte():从缓存区写入MemoytStream流对象一个字节。

Read方法使用的语法:
MemoryStream.Read(byte[] buffer,offset,count)


3个参数中,buffer包含指定的字节数组,该数组中,从offset到(offset +count-1)之间的值由当前流中读取的字符替换。

Count是指最多读取的字节数。

Write()方法和Read()方法具有相同的参数类型。

另一篇博客对Read()参数的解释,感觉这个更容易理解:

第一个参数,是读取到的内容要输出到的字节数组

第二个参数是放在第一个参数即要输出的数组的位置的偏移量

第三个参数是,要读取的字符数。

用这个方法你可以任意读取一段需要的内存。

注意,Read()方法是从当前流的Position属性的位置开始读,这就是为什么很多人测试的时候,刚刚写入内存的数据,Read()方法无法读取到内容的原因,因为刚刚写入内存之后,位置恰好是在最后一位了。Read()方法当然读不到。此方法强大之处在于,你可以从一个内存流中读出你想要的一个片段。

关于其他属性和和方法可以去看这个博客:http://www.cnblogs.com/kissdodog/archive/2013/01/20/2868864.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# 数据