首页 > 其他分享 >MemoryStream

MemoryStream

时间:2023-11-01 15:36:15浏览次数:32  
标签:字节 stream 代码 写入 使用 MemoryStream

https://www.yisu.com/ask/25446927.html

和文件流不同,MemoryStream类表示的是保存在内存中的数据流,由内存流封装的数据可以在内存中直接访问。内存一般用于暂时缓存数据以降低应用程序对临时缓冲区和临时文件的需要。继承与stream类(流),它的兄弟,也就是同样由stream派生的子类,有filestream、BufferedStream等。memorystream处理的单位是字节。

下面是一个C#中使用MemoryStream类的案例详解。
1. 创建MemoryStream对象
首先,我们需要创建一个MemoryStream对象来存储数据。可以使用以下代码来创建一个空的MemoryStream对象:
csharp<br>MemoryStream stream = new MemoryStream();<br>
2. 写入数据
接下来,我们可以使用Write方法来向MemoryStream中写入数据。可以使用以下代码将字符串写入MemoryStream中:
csharp<br>string data = "Hello World!";<br>byte[] buffer = Encoding.UTF8.GetBytes(data);<br>stream.Write(buffer, 0, buffer.Length);<br>
在上面的代码中,我们首先将字符串转换为字节数组,并使用Write方法将字节数组写入MemoryStream中。
3. 读取数据
要从MemoryStream中读取数据,我们可以使用Read方法。可以使用以下代码来读取之前写入的数据:
csharp<br>byte[] result = new byte[stream.Length];<br>stream.Position = 0;<br>stream.Read(result, 0, (int)stream.Length);<br>string data = Encoding.UTF8.GetString(result);<br>Console.WriteLine(data);<br>
在上面的代码中,我们首先创建一个与MemoryStream长度相等的字节数组,然后将Position属性设置为0,以确保从MemoryStream的开头开始读取数据。最后,我们使用Read方法将数据读取到字节数组中,并将其转换为字符串。
4. 关闭MemoryStream
在完成操作后,我们应该关闭MemoryStream以释放资源。可以使用以下代码来关闭MemoryStream:
csharp<br>stream.Close();<br>
此外,我们还可以使用using语句来自动关闭MemoryStream,如下所示:
csharp<br>using (MemoryStream stream = new MemoryStream())<br>{<br>// 在这里进行操作<br>} // 在这里自动关闭MemoryStream<br>
使用using语句可以确保在代码块结束时自动调用Close方法关闭MemoryStream。
以上就是使用C#中的MemoryStream类的案例详解。

标签:字节,stream,代码,写入,使用,MemoryStream
From: https://www.cnblogs.com/Dongmy/p/17803240.html

相关文章

  • C# MemoryStream转GZipStream 到文件
    压缩:publicstaticvoidMemoryStreamCompress(stringfileName,MemoryStreammemStream){FileStreamfsWrite=File.OpenWrite(fileName);byte[]bytes=newbyte[1*1024*1024];GZipStreamcompressedzipStream=......
  • 关于 Delphi 中流的使用 用 TMemoryStream(内存流) 入门
    所谓"流",就是一段数据或是一块内存;在进行流操作时,我们不必关心流中的数据到底是什么;只需要知道流的大小和当前的指针位置.所以流只有两个属性:Size、Position.对流的操作,不过就是读取和写入.所以流最主要的方法就是Read和Write.在很多控件的使用中,读取主要用Load......
  • c#如何使用MemoryStream和BinaryFormatter进行对象的序列化和返序列化
    c#如何使用MemoryStream和BinaryFormatter进行对象的序列化和返序列化  1下面是我写的一个序列化的类public static classObjSerialize{///<summar......
  • .NET性能优化-使用RecyclableMemoryStream替代MemoryStream
     提到MemoryStream大家可能都不陌生,在编写代码中或多或少有使用过;比如Json序列化反序列化、导出PDF/Excel/Word、进行图片或者文字处理等场景。但是如果使用它高频、......
  • .NET性能优化-使用RecyclableMemoryStream替代MemoryStream
    提到MemoryStream大家可能都不陌生,在编写代码中或多或少有使用过;比如Json序列化反序列化、导出PDF/Excel/Word、进行图片或者文字处理等场景。但是如果使用它高频、大数据......
  • 034-MemoryStream内存数据读写
    位与字节计算机中最小的单位时“位”,用bit表示,数据是用二进制来表示。但是bit过小,因此用字节来作为存储单位,用“Byte”表示,其中8位组成一个字节。所以一个字节表示的数的......
  • Microsoft.IO.RecyclableMemoryStream源码解读
    一、RecyclableMemoryStreamManager源码地址:https://github.com/Microsoft/Microsoft.IO.RecyclableMemoryStream小对象池和大对象池管理、RecyclableMemoryStream创建、......
  • 大字节数组和 MemoryStream 的替代方案
    发表于2019年12月9日 在.NET中,处理二进制数据时通常使用字节数组;例如,在方法之间传递文件的内容、编码/解码文本、从套接字读取数据等。这些数组可能会变得非常大......